渴望加载条件

时间:2009-10-18 01:14:15

标签: ruby-on-rails

较新的预先加载样式使用多个查询来加载关联。是否可以为那些额外的急切加载查询添加条件? e.g。

Bakery.find(:all, :include => :bakers)

将生成类似于此的急切加载查询:

SELECT bakers。* FROM bakers WHERE(bakers。bakery_id IN(1,2,3,4,5))

是否可以为此热切加载查询添加条件?

更新 为了(可能)使这个更清楚,我想用AR(sans SQL)复制的查询是:

SELECT * FROM bakeries LEFT JOIN bakers ON bakeries.id = bakers.bakery_id AND bakers.hat ='on'

具体来说,我希望能够将第二个急切加载的SQL语句修改为:

SELECT bakers。* FROM bakers WHERE(bakers。bakery_id IN(1,2,3,4,5)AND bakers。hat ='on' )

这可能,还是我必须使用SQL?只是寻找“Rails”方式来做到这一点。 :)

1 个答案:

答案 0 :(得分:1)

那么,您想要在关联查询中进行哪些更改?

你当然可以这样做:

Bakery.find(:all, :include => :bakers, :conditions => ["bakers.something = ?", true])

如果我们有更多信息,可能有更好的方法来做到这一点。根据您要查找的内容,您可能需要查看可以链接在一起的named_scope,例如:

Bakery.bakers.available

named_scope非常整洁。