34

我有一个没有与之关联的模型的表单,所以我使用form_tag而不是form_for. 正如预期的那样,当用户提交表单时,每个字段都包含在 params 哈希中。但是表单会发生很大变化,我希望在 params 哈希中使用一个哈希来保存所有表单字段值,这样每次更改表单时我都不必更改控制器。

有没有办法像 form_for 一样将表单字段值放入嵌套哈希中?我希望能够通过执行类似的操作来获取所有表单字段并将它们转换为 jsonparams[:form_fields].to_json

4

1 回答 1

62

您可以fields_for在 aform_tag中使用更正式的方式来表达命名空间。

fields_for :form_fields do |ff|
  ff.text_field :my_text_field
  ff.select :my_select_tag
end

或者,只需命名所有表单输入,如下所示:

text_field_tag "form_fields[my_text_field]"
select_tag "form_fields[my_select_tag]" ...

等然后你会得到params[:form_fields] = {:my_text_field => "foo", :my_select_tag => "bar"},我认为这是你想要的。

于 2013-02-27T15:43:21.867 回答