Rails表单:如何在一个数组中存储两个text_fields

时间:2013-01-06 00:22:00

标签: ruby-on-rails ruby-on-rails-3.2

新手到rails和许多在线教程我看到了这个例子

<div class="field">
 <%= f.label :first_name %><br />
 <%= f.text_field :first_name %>
</div>
<div class="field">
 <%= f.label :last_name %><br />
 <%= f.text_field :last_name %>
</div>

像这样存储

"first_name"=>"foo", "last_name"=>"bar"

有没有办法使用text_field或其他表单属性在数组中存储两个输入,所以它最终会像:

"name"=>["foo", "bar"]

这不是首选方式,但很想知道如何完成

更新

在您的示例中,您将传递@ user.first_name和.last_name作为值。我想的更像是这样的东西:

 <div class="field">
  <%= f.label "First Name" %><br />
  <%= f.text_field :name %>
</div>
<div class="field">
 <%= f.label "Last Name" %><br />
 <%= f.text_field :name %>
</div>

没有@user.first_name@user.name[0]

1 个答案:

答案 0 :(得分:2)

您可以使用text_field_tag来实现此目的。 (文件:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-text_field_tag

一个简单的例子如下:

text_field_tag 'name[]', @user.first_name
text_field_tag 'name[]', @user.last_name

这将在name参数下发送两个名称。您可以在控制器中使用params[:name]访问阵列。