ruby-on-rails - Rails 窗体 : how to store two text_fields in one array

标签 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]

最佳答案

您可以使用 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/

相关文章:

ruby-on-rails - 如何使用 RSpec 测试具有嵌套属性的表单?

ruby-on-rails-3.2 - PDFKit - 未定义方法 'Scan"错误

ruby-on-rails - 如何从服务器目录制作 Paperclip 进程文件?

Mysql2::错误:表 'username'的INSERT命令被拒绝给用户@'host' 'schema_migrations':插入 `schema_migrations` (`version`)值('')

ruby-on-rails - 如何编写一个 RSpec Controller 宏,它可以接受由 let 或在 before block 中定义的参数?

ruby-on-rails - 良好的后台处理选项

ruby-on-rails - 如何在 Rails 3.2 中为所有未知请求(包括图像)呈现相同的 404 页面而不单独指定每个文件格式?

ruby-on-rails - rails : Bootstrap and dropdown not working

ruby-on-rails - current_user 的 Rails 关联

ruby-on-rails - 事件记录切换方法