我有一个使用 update_attributes 的嵌套表单(非常类似于 RailsCasts 中显示的表单),它更新父对象以及更新和创建新的子对象。我希望能够区分何时创建子对象、何时更新子对象以及何时更新父对象。反正有这样做吗?我的直接目标是在创建新的子对象时推送广播。
尝试在子模型中使用 after_create 对我的目的不起作用,因为我试图在 application_controller.rb 中调用一个动作。
代码是我的父对象控制器是
if @parent_object.update_attributes(params[:parent_object])
...want the push_broadcast to go here if it's a new record.
如果我使用调试器,params[:parent_object] 返回这个
{"overall_sharing"=>"1", "permissions_attributes"=>{"0"=>{"id"=>"66"}, "1"=> {"can_edit"=>"1", "can_copy"=>"1", "_destroy"=>"false", "id"=>"74"}, "1341967403169"=>{"user_id"=>"171", "can_edit"=>"1", "can_copy"=>"1", "_destroy"=>"false", "note_id"=>"423"}}}
作为参考,最后一位是新的子对象,第一位是更新父对象,中间是更新子对象。
我不知道正确的路径是尝试弄乱参数还是考虑不同的路线。任何建议将不胜感激。
谢谢,威尔斯