我正在开发一个通过表单发送数据的Rails应用程序.我想修改某些形式的"参数"的后形式发送,但之前对其进行处理.
我现在有什么
{"commit"=>"Create", "authenticity_token"=>"0000000000000000000000000" "page"=>{ "body"=>"TEST", "link_attributes"=>[ {"action"=>"Foo"}, {"action"=>"Bar"}, {"action"=>"Test"}, {"action"=>"Blah"} ] } }
我想要的是
{"commit"=>"Create", "authenticity_token"=>"0000000000000000000000000" "page"=>{ "body"=>"TEST", "link_attributes"=>[ {"action"=>"Foo", "source_id"=>1}, {"action"=>"Bar", "source_id"=>1}, {"action"=>"Test", "source_id"=>1}, {"action"=>"Blah", "source_id"=>1}, ] } }
这可行吗?基本上,我试图一次提交两种类型的数据("页面"和"链接"),并将"链接"的"source_id"分配给"页面"的"id".
在将其提交到数据库之前,您可以在控制器中编写代码,该代码将获取参数并在保存之前附加不同的信息.例如:
FooController < ApplicationController def update params[:page] ||= {} params[:page][:link_attributes] ||= [] params[:page][:link_attriubtes].each { |h| h[:source_id] ||= '1' } Page.create(params[:page]) end end