我有以下問題:檢查列入的ActiveRecord的has_many協會
我有一個Widget ActiveRecord模型,有一些領域,我們將field_a和field_b打電話給他們,除了標準的Rails領域。我還有一個名爲Person的模型,它通過has_many關聯(Person.widgets)具有許多小部件。
在我的控制器的Widget的創建操作中,我想檢查以確保我從參數{@widget = Widget.new(params [:widget])}創建的新Widget不存在於Person.widgets集合在將新小部件保存到數據庫之前,但使用Person.widgets.include?(@小部件)不會給我想要的結果,如果field_a和field_b具有與集合中的小部件相同的值。
我猜測這是因爲新的小部件(@widget)在技術上不存在於該集合中,因爲它是一個新記錄,即使它的重要屬性(field_a和field_b)可能與已關聯的DB與Person的實例。
任何想法,我可能會去檢查這個,所以我不創建功能上重複的小部件在關聯到同一個人實例的數據庫?我試圖覆蓋散列,eql?和Widget模型上的==方法,但打破了一些其他的東西......謝謝TDD! :-)
謝謝, 邁克
感謝您的幫助......我試圖想要一點點幻想,但這個伎倆! – user197735 2009-10-28 23:36:41