ActiveRecord - 找到父母

时间:2012-06-08 20:23:57

标签: ruby-on-rails-3 activerecord

我想找到有孩子的东西。所以给出:

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吗?

2 个答案:

答案 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。