2009-08-28 54 views
2

我有一個模型,人,具有下列關聯關係:如何訪問ActiveRecord :: AutosaveAssociation.marked_for_destruction?從父模型中

has_many :distributions 

accepts_nested_attributes_for :distributions, :allow_destroy => true 

validate :distributions_must_total_100 

目前的自定義驗證時,它不應該失敗 - 當一些驗證已被標記爲破壞 - 因爲在Person和它的分佈被保存之前,它們仍然顯示在屬性「分佈」(在內存中,而不管數據庫中的內容)。

我想在驗證程序中使用ActiveRecord::AutosaveAssociation.marked_for_destruction?來忽略即將銷燬的分發。

  1. 如何達到該方法?不太確定Distribution(你的普通Rails模型)與這個類的關係。

  2. 這是一個可怕的不潔淨的黑客?它只感覺有點骯髒,而且它是解決問題的最精確的解決方案。

我確實通過在調試器中的ActiveRecord源代碼步驟,以確認記錄實際被標記用於破壞(即,不是一個Javascript或表單生成器錯誤)。

回答

0

原來,你可以在分配的實例上調用marked_for_destruction?,它工作正常。