【发布时间】:2012-07-11 00:48:56
【问题描述】:
我有一个使用 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"}}}
供参考,最后一位是新的子对象,第一位是更新父对象,中间是更新子对象。
我不知道正确的路径是尝试弄乱参数还是考虑不同的路径。任何建议将不胜感激。
谢谢,威尔斯
【问题讨论】:
标签: ruby-on-rails-3 nested-forms update-attributes