我想找到有孩子的东西。所以给出:
class Foo < ActiveRecord::Base
has_many :bars
has_many :bazes
scope :is_a_parent ...what goes here?...
我想让Foos有任何条纹或任何bazes。当然,使用原始SQL exists (select 1 from bars ...) or exists (select 1 from bazes ...)
,但是yuk。
肯定有一些方法可以将any?
与arel or
方法结合使用?还有其他方法可以不借助SQL吗?
答案 0 :(得分:0)
this会帮助你吗?先前的答案是寻找你的倒数(没有酒吧或者没有bazes的Foos),但你应该能够颠倒逻辑。
答案 1 :(得分:0)
class Foo < ActiveRecord::Base
has_many :bars
has_many :bazes
scope :is_a_parent, (joins(:bars) or joins(:bazes)).uniq
会给你所有有酒吧或阴霾的foos
顺便说一下,通常以“is_”开头的函数应该以“?”结尾,并且应该只返回true / false。