使form_tag的行为更像form_for

时间:2012-06-18 22:42:37

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我需要form_tag以与form_for返回它们相同的格式返回参数。

form_for返回这样的参数:

{"person"=>{"name"=>"bob", "age"=>"30", "etc"=>"bla"}}>

form_tag将执行以下操作:

{"name"=>"bob", "age"=>"30", "etc"=>"bla"}

如何让form_tag以相同的方式返回参数?

2 个答案:

答案 0 :(得分:4)

问题在于你的领域。 也许代替:

<%= 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]", "" %>

答案 1 :(得分:0)

<%= form_tag(:controller => "persons", :action => "index", :p => params.except(:controller, :action)) %>

<%= form_tag( params.merge( :controller => "persons", :action => "index" )) %>