我有一個父模型,有許多兒童模型爲什麼這個ruby rails語句不起作用?
我想根據子的一個參數銷燬重複的子記錄。
我嘗試這樣做:
parent.child.uniq! {|child| child.parameter }
它顯然作品,但數據庫中不反映變化。
我有一個父模型,有許多兒童模型爲什麼這個ruby rails語句不起作用?
我想根據子的一個參數銷燬重複的子記錄。
我嘗試這樣做:
parent.child.uniq! {|child| child.parameter }
它顯然作品,但數據庫中不反映變化。
您的操作是在從數據庫檢索的對象上執行的,而不是實際的數據庫。看看這個post是正確的答案。
這並不grouped.values.each拋出關聯錯誤 – user2376068
剛試過的作品,作品對我蠻好。也許嘗試在該頁面上的第二個解決方案,這是更容易遵循 – rb512
該算法刪除模型本身的副本,而不是父模型的每個實例的子項的重複。 – user2376068
你有沒有嘗試改變之後的記錄保存到數據庫中? – lurker
mbratch,你會怎麼做?我試過parent.save和parent.child.save,但都沒有工作。 – user2376068
我的問題是,如果您使用的數據庫在重複的字段中應該是唯一的,那麼爲什麼您沒有唯一的索引來強制執行該約束?讓DBM做好工作,並依靠它來做到這一點。 Rails是專爲這類行爲,並可以很容易地設計。 –