如何在Rails中查找具有nil关联的记录

时间:2015-10-01 14:04:10

标签: ruby-on-rails activerecord

这些显然不是我的实际模型,但它们就是一个例子。我有以下类定义。

class Movie < ActiveRecord::Base
    has_one :opening
    has_one :opening_info, through: :opening
end

class Opening < ActiveRecord::Base
    belongs_to :movie
    has_one :opening_info
end

class OpeningInfo < ActiveRecord::Base
    belongs_to :opening
    # OpeningInfo has a opening_date attribute in the DB
end

我想找到所有具有有效开场的电影,通过该开场的有效OpeningInfo,以及OpeningInfo的开放日期不是零。有效我的意思是存在。我尝试了几个使用连接和包含的表达式,但它抱怨非法的sql语句。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这应该可行,当opening_infos是表名时:

Movie.joins(:opening_info).where.not(opening_infos: { opening_date: nil })