渴望加载的较新样式使用多个查询来加载关联。是否可以为那些额外的急切加载查询添加条件?例如

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非常整洁。

10-01 05:09