2010-05-30 73 views
0

我有兩個模型,Worker和Project,它們通過關聯與has_many關聯。通過關聯使用has_many查找記錄

我設法找到所有這些都通過寫下面的代碼與特定的工人項目:

worker=Worker.find_by_id("some_id") 
worker.projects 

,但我想,我得到是唯一的活動項目(項目模型我的項目有一個狀態字段)

我試圖做類似

worker.projects(:status_id=>'active') 

但它並沒有爲我工作。

有人可以告訴我我該怎麼做?

+0

@piemesons:我可以想象,這個特殊的語法點將很難只是在必要時在文檔中查找。只有這種關係利用了鴨子打字這一事實才加重了困難,使得##all'方法的存在幾乎令人驚訝。 – Matchu 2010-05-30 14:31:44

回答

1

嘗試:

worker.projects.all(:conditions => {:status_id => 'active'}) 
1
worker.projects.all(:conditions => {:status_id => 'active'}) 

會工作。 (回答編輯後的評論)

+1

雖然他們確實表現不同。 '#find'在失敗時會拋出異常,而'#find_by_id'在失敗時返回nil。 – Matchu 2010-05-30 14:30:35

+0

哦,非常感謝Matchu ..編輯我的答案... – 2010-05-30 14:31:49

相關問題