"Create", "authentici-6ren">
gpt4 book ai didi

ruby-on-rails - rails : modify form parameters before modifying the database

转载 作者:数据小太阳 更新时间:2023-10-29 06:51:55 28 4
gpt4 key购买 nike

我正在开发一个通过表单发送数据的 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”。

最佳答案

在提交到数据库之前,您可以在 Controller 中编写代码,在保存之前获取参数并附加不同的信息。例如:

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-on-rails - rails : modify form parameters before modifying the database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/425521/

28 4 0