Ruby on rails 嵌套哈希中的Form_标记参数
我有一个表单没有与之关联的模型,所以我使用了Ruby on rails 嵌套哈希中的Form_标记参数,ruby-on-rails,Ruby On Rails,我有一个表单没有与之关联的模型,所以我使用了form\u标签,而不是form\u作为。正如预期的那样,当用户提交表单时,每个字段都包含在params散列中。但是表单会改变很多,我更喜欢在params散列中有一个散列,它将保存所有表单字段值,这样我就不必每次更改表单时都更改控制器 是否有一种方法可以将表单字段值放入一个嵌套的散列中,就像表单_for does一样?我希望能够获取所有表单字段,并通过执行类似于params[:form\u fields]的操作将它们转换为json。要实现json,可以
form\u标签
,而不是form\u作为
。正如预期的那样,当用户提交表单时,每个字段都包含在params散列中。但是表单会改变很多,我更喜欢在params散列中有一个散列,它将保存所有表单字段值,这样我就不必每次更改表单时都更改控制器
是否有一种方法可以将表单字段值放入一个嵌套的散列中,就像表单_for does一样?我希望能够获取所有表单字段,并通过执行类似于params[:form\u fields]的操作将它们转换为json。要实现json,可以在form\u标记中使用form\u>来更正式地表达名称空间
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]" ...
等等。然后你会得到参数[:form_fields]={:my_text_field=>“foo”,:my_select_tag=>“bar”}
,我想这就是你想要的。这似乎正是我需要的。谢谢我发现强参数与符号:my_text_field与由以下内容生成的字符串不匹配::my_text_field“输入元素的字符串名称映射到符号,因此“my_text_field”
将匹配:my_text_field
,“:my_text_field”
可能不匹配。rails 4.1是否仍然可以这样做?我正是这样做的,我的html已经像上面那样用表单_字段进行分组。它适用于具有相关活动记录对象的字段。但不能使用自定义字段。我在params顶层收到它们的键/值。