这些显然不是我的实际模型,但它们就是一个例子。我有以下类定义。
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语句。有什么想法吗?
答案 0 :(得分:2)
这应该可行,当opening_infos是表名时:
Movie.joins(:opening_info).where.not(opening_infos: { opening_date: nil })