较新的加载方式使用多个查询来加载关联。是否有可能为这些额外的热切加载查询添加条件?例如随意加载条件
Bakery.find(:all, :include => :bakers)
将生成类似于此的预先加载查询:
选择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 =烤饼。 bakery_id和bakers.hat = '上'
具体来说,我希望能够修改第二急于加载的SQL语句是:
选择bakers
* FROM bakers
WHERE(bakers
.bakery_id IN(1,2,3,4,5)AND bakers
.hat ='on')
这是可能的,还是必须使用SQL?只需寻找“Rails”的方式来做到这一点。 :)
感谢您的回复Bill。我尝试过这种方法,但它会执行一次加入,只返回符合条件的面包房。我想要的是,让所有的面包店,只有特定的面包师热切地加载。基本上,这两个查询的热切等同于:bakeries = Bakery.find(:all); bakers = bakeries.find(:all,:conditions => {:hat =>'on'}) – Jay 2009-10-18 06:39:13
要添加更多,我正在使用Bakery.find(:all),并且在我看来,对于每个面包店,正在使用:bakery.bakers.find(:all,:conditions => {:hat =>'on'})。寻找一种方法来做到这一点,但没有所有额外的查询。 – Jay 2009-10-18 07:05:03
感谢您的澄清。我不完全确定是否有办法获得您所需要的。也许玩几个named_scopes,看看你是否需要,但我有一种感觉,它不会。 – 2009-10-19 01:10:37