私はトピックと投稿のモデルを持っています。トピックhas_many:posts。私はaccepts_nested_attributes_forも持っているトピックモデルではaccepts_nested_attributes_forのオブザーバとコールバックが発生していません
:ポスト、
はポストのためのいくつかのparamsでトピックを更新するときにどちらのオブザーバーもコールバックがPostモデルのためにトリガされないようです。バグか機能ですか?
私はトピックと投稿のモデルを持っています。トピックhas_many:posts。私はaccepts_nested_attributes_forも持っているトピックモデルではaccepts_nested_attributes_forのオブザーバとコールバックが発生していません
:ポスト、
はポストのためのいくつかのparamsでトピックを更新するときにどちらのオブザーバーもコールバックがPostモデルのためにトリガされないようです。バグか機能ですか?
「ポスト用のいくつかのパラメータでトピックを更新するとき」ですが、Post
ポストオブジェクトを更新するときにのみコールバックが実行されます。
@post.update_attributes(:topics_attributes => [...])
を...しかし、これはしません:このすなわち
は、コールバックをトリガする
@topic.update_attributes(:post_id => 123, ...)
あなたはトピックが更新されたときにPost
after_update
コールバックをトリガしたい場合は、行うことができますこれは:
# topic.rb
after_update :touch_post
private
def touch_post
post.touch
end
オブザーバーコードはca llbacks。
ネストされたリソースに対してupdate_attributesメソッドを実行すると、リソースはに変更された場合はのみが保存され、検証済みの場合はリソースが保存されず、after_updateはトリガーされません。
あなたは 'config/application.rb'であなたのオブザーバーを有効にしましたか?サーバーを再起動する必要があります。 – NARKOZ
確かに、私は以前のオブザーバーを使っていました。通常のモデル更新のためにネストされたアトリビュートではありません。 – Artur79
あなたはオブザーバーコードも投稿してください。 –