以下に例を示します。
class Foo < AR::Base
has_many :bars, :as => :barable, :dependent=> :destroy
accepts_nested_attributes_for :bars, :allow_destroy => true
end
class Bar < AR::Base
belongs_to :barable, :polymorphic => true
end
class Baz < Bar
before_save do
raise "Hi"
end
end
「Foo」のフォームでfields_for :bars_attributes
は、隠しフィールドtype
が「Baz」に設定されている場所があります。「Baz」は正常に作成されましたが、コールバックは起動しません。(ただし、コンソールで「Baz」を手動で作成すると起動します。)
アドバイスをいただければ幸いです。