ActiveRecord查找包含,include的条件不影响父级

时间:2010-09-21 20:58:01

标签: ruby-on-rails activerecord join

我有两种模式:

class Parent < ActiveRecord::Base
  has_many :children
end

class Child < ActiveRecord::Base
  belongs_to :parent
end

我想找到所有父母和他们的孩子,只有孩子的条件。但如果父母没有符合该标准的孩子,我仍然想要父母。

我试过了:

Parent.all(:include => :children, :conditions => {'children.some_condition' => 'some_value'})

但是,这不会返回没有匹配孩子的父母。我想要所有父母,只有那些符合我条件的父母的孩子。

不幸的是我正在使用Rails 2.1.1。我想升级,但现在不是我的主要优先事项,所以请考虑可能实施的限制 编辑:抓住,刚升级到2.3.6,相当无痛

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我不确定它是否适用于Rails 2.1.1,但我认为应该。

您的条件适用于所有记录 - 也适用于没有任何子女的记录。所以你需要添加这样的附加条件:

Parent.all(:include => :children, :conditions => ["children.some_condition = ? OR children.id is null", "some_value"]