的ActiveRecord找到包括,在条件包括不影响父
问题描述:
我有两个型号:的ActiveRecord找到包括,在条件包括不影响父
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,是相当容易
任何帮助是极大的赞赏。
答
我不太确定它是否可以与Rails 2.1.1一起使用,但我认为它应该。
您的条件适用于所有记录 - 也适用于那些没有任何子女的记录。所以你需要添加这样的附加条件:
Parent.all(:include => :children, :conditions => ["children.some_condition = ? OR children.id is null", "some_value"]
刚刚升级了服务......它实际上很简单,测试都通过了......明天我会试试这个机会。 – brad 2010-09-21 21:50:38