新手到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]
答案 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]
访问阵列。