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]
最佳答案
您可以使用 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
参数下发送两个名称。您可以在 Controller 中使用 params[:name]
访问数组。
关于ruby-on-rails - Rails 窗体 : how to store two text_fields in one array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14177955/