人们不判断我的代码,我们一直在不断开发,因此我的数据库很乱。无法删除并重新创建数据库(我希望我可以大声笑),因此必须找到解决方案。
用户模型 :(它是很久以前创建的,没有父级)
class User < ApplicationRecord
...
belongs_to :deals, optional: true
...
end
我必须结合交易模型进行实际交易
class Deal < ApplicationRecord
...
has_one :user
accepts_nested_attributes_for :user
...
由于Deal是在稍后实施的,因此我的SQL看起来像这样:
现在,如何在没有用户的情况下获得交易范围(我没有在交易中创建user_id列,我将其保留为最后一个选项)。
基本上,我需要Deal.where.not(:user)。我尝试了以下代码,但由于某些用户不属于Deals,因此无法正常工作。
scope :no_user, -> {left_outer_joins(:user).where(user: { id: nil })}
我该怎么办?谢谢