我确定有一个简单的方法可以做到这一点,但谷歌用谷歌干了......
我有一个具有has_many关联的模型
Object.rb
has_many :things
我想基本上写
Object.include? :things
获取一个查询响应,其中包含至少有一件事的所有对象。
与has_one ..
相同有什么想法吗?
答案 0 :(得分:2)
试试这个:
在Rails中使用where
3.2 :
# When *has_many* association:
Object.includes(:things).where("things.id IS NOT NULL")
# When *has_one* association:
Object.includes(:thing).where("things.id IS NOT NULL")
请注意,在where
子句中,您需要使用实际的表名。
Rails(活动记录) 4.0 及以上添加了where.not
,因此您可以执行此操作:
Object.includes(:things).where.not('things.id' => nil)
# or
Object.includes(:things).where.not(things: {id: nil})
答案 1 :(得分:1)
您也可以这样尝试
Object.includes(:things).where("things.id IS NOT NULL")