渴望加载的较新样式使用多个查询来加载关联。是否可以为那些额外的急切加载查询添加条件?例如Bakery.find(:all, :include => :bakers)
将生成类似于以下内容的热切的加载查询:
从bakers
位置选择bakers
。*(bakers
.bakery_id IN(1,2,3,4,5))
是否可以为这个热切的加载查询添加条件?
更新:
为了(也许)使这一点更清楚,我想用AR(无SQL)复制的查询是:
选择* FROM bakeries
左联接bakers
ON bakeries.id = bakers.bakery_id和bakers.hat ='on'
具体来说,我希望能够将第二个渴望加载的SQL语句修改为:
从bakers
位置选择bakers
。*(bakers
.bakery_id IN(1,2,3,4,5)AND bakers
.hat ='on')
这可能吗,还是我必须使用SQL?只是在寻找实现“ Rails”的方式。 :)
最佳答案
好吧,您要在关联查询中特别更改什么?
您当然可以这样做:
Bakery.find(:all, :include => :bakers, :conditions => ["bakers.something = ?", true])
如果我们有更多的信息,可能会有更好的方法。根据您要寻找的内容,您可能需要研究
named_scope
,可以将它们链接在一起,例如:Bakery.bakers.available
named_scope
非常整洁。