2013-10-19 74 views
0

我有一個父模型,有許多兒童模型爲什麼這個ruby rails語句不起作用?

我想根據子的一個參數銷燬重複的子記錄。

我嘗試這樣做:

parent.child.uniq! {|child| child.parameter } 

它顯然作品,但數據庫中不反映變化。

+0

你有沒有嘗試改變之後的記錄保存到數據庫中? – lurker

+0

mbratch,你會怎麼做?我試過parent.save和parent.child.save,但都沒有工作。 – user2376068

+1

我的問題是,如果您使用的數據庫在重複的字段中應該是唯一的,那麼爲什麼您沒有唯一的索引來強制執行該約束?讓DBM做好工作,並依靠它來做到這一點。 Rails是專爲這類行爲,並可以很容易地設計。 –

回答

1

您的操作是在從數據庫檢索的對象上執行的,而不是實際的數據庫。看看這個post是正確的答案。

+0

這並不grouped.values.each拋出關聯錯誤 – user2376068

+0

剛試過的作品,作品對我蠻好。也許嘗試在該頁面上的第二個解決方案,這是更容易遵循 – rb512

+0

該算法刪除模型本身的副本,而不是父模型的每個實例的子項的重複。 – user2376068

相關問題