0
有沒有什麼辦法可以在父代之前停止保存子代。accepted_nested_attributes_for多態關聯
我正在使用具有多態關聯的accepts_nested_attributes_for
。
我使用了多個選項validates_presence_of :parent_id
,validates_assoicated :parent
但沒有任何工作。
例如,我有一個類
Class Person
include HasPhoneNumbers
..
end
module HasPhoneNumbers
def self.included(kclass)
kclass.has_many :phone_numbers, :as => :callable, :dependent => kclass == Person ? :destroy : :nullify
end
klass.accepts_nested_attributes_for :phone_numbers, :reject_if => lambda {|pn| pn.keys.any?{|k| k.to_sym != :id && pn[k].blank?} }
end
class PhoneNumber
belongs_to :callable, :polymorphic => true
end
因此,儘管節省的人由於人對象確認,這是不節能。但是,孩子(電話號碼)正在保存。所以我需要限制它在父(人)保存之前不保存子(phone_number)。
我確實嘗試了多個選項,使用validates_presence_of
和validates_associated
,但沒有一個適合我。
嗨感謝input..I已經嵌入事務中的代碼,但不知何故,沒有滾動back..is有什麼辦法可以解決這個問題。 –