嵌套哈希中的Form_tag参数

时间:2013-02-27 15:33:41

标签: ruby-on-rails

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

有没有办法将表单字段值放入像form_for那样的嵌套哈希?我希望能够获取所有表单字段并通过执行类似params[:form_fields].to_json

之类的操作将它们转换为json

1 个答案:

答案 0 :(得分:55)

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

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"},我认为这就是你想要的。