ruby-on-rails – Rails:在修改数据库之前修改表单参数

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails:在修改数据库之前修改表单参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个通过表单发送数据的Rails应用程序.我希望在表单发送之后但在处理之前修改表单的某些“参数”.

我现在有什么

{"commit"=>"Create","authenticity_token"=>"0000000000000000000000000"
  "page"=>{
    "body"=>"TEST","link_attributes"=>[
      {"action"=>"Foo"},{"action"=>"Bar"},{"action"=>"Test"},{"action"=>"Blah"}
    ]
  }
}

我想要的是

{"commit"=>"Create","link_attributes"=>[
      {"action"=>"Foo","source_id"=>1},{"action"=>"Bar",{"action"=>"Test",{"action"=>"Blah",]
  }
}

这可行吗?基本上,我试图一次提交两种类型的数据(“页面”和“链接”),并将“链接”的“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

猜你在找的Ruby相关文章