范围父级没有子项(某些子项没有父项)

时间:2019-01-20 19:08:00

标签: ruby-on-rails activerecord ruby-on-rails-5 psql

人们不判断我的代码,我们一直在不断开发,因此我的数据库很乱。无法删除并重新创建数据库(我希望我可以大声笑),因此必须找到解决方案。

用户模型 :(它是很久以前创建的,没有父级)

class User < ApplicationRecord 
...
belongs_to :deals, optional: true
...
end

我必须结合交易模型进行实际交易

class Deal < ApplicationRecord
...
has_one :user
accepts_nested_attributes_for :user
...

由于Deal是在稍后实施的,因此我的SQL看起来像这样:

Drawn SQL graph picture

现在,如何在没有用户的情况下获得交易范围(我没有在交易中创建user_id列,我将其保留为最后一个选项)。

基本上,我需要Deal.where.not(:user)。我尝试了以下代码,但由于某些用户不属于Deals,因此无法正常工作。

scope :no_user, -> {left_outer_joins(:user).where(user: { id: nil })}

我该怎么办?谢谢

0 个答案:

没有答案