親の前に子の保存を停止する方法はありますか。
多態的な関連付けで使用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
したがって、人物オブジェクトの検証により人物を保存している間、保存されませんでした。ただし、child(phone_number) は保存していました。したがって、親(人)が保存する前に子(電話番号)を保存しないように制限する必要があります。
validates_presence_of
と を使用して複数のオプションを試しvalidates_associated
ましたが、うまくいきません。