【问题标题】:Make form_tag behave more like form_for使 form_tag 的行为更像 form_for
【发布时间】:2012-06-18 22:42:37
【问题描述】:
我需要 form_tag 以与 form_for 返回参数相同的格式返回参数。
form_for 返回参数如下:
{"person"=>{"name"=>"bob", "age"=>"30", "etc"=>"bla"}}>
form_tag 将执行以下操作:
{"name"=>"bob", "age"=>"30", "etc"=>"bla"}
如何让 form_tag 以同样的方式返回参数?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
ruby-on-rails-3.1
【解决方案1】:
问题在于您的字段。
也许代替:
<%= text_field_tag "name", "" %>
<%= text_field_tag "age", "" %>
<%= text_field_tag "etc", "" %>
你这样写:
<%= text_field_tag "person[name]", "" %>
<%= text_field_tag "person[age]", "" %>
<%= text_field_tag "person[etc]", "" %>
【解决方案2】:
<%= form_tag(:controller => "persons", :action => "index", :p => params.except(:controller, :action)) %>
或
<%= form_tag( params.merge( :controller => "persons", :action => "index" )) %>