Ruby on Rails:同一表单中的多个相同输入字段

Jam*_*s F 2 ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

有一个页面,其中有相同的东西的多个输入字段,帖子.现在,当用户输入问题时,假设3个字段,保存到数据库的唯一字段是最后一个.然而,它应该保存所有三个并给它们每个自己的post_id.也; 如果用户没有为其他字段输入任何内容,则它也不应保存在数据库中.

<%= form_for(@post) do |f| %>
  <%= f.text_field :content %>
  <%= f.text_field :content %>
  <%= f.text_field :content %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

Tar*_*ast 5

这是失败的,因为你上面的内容评估的是具有相同名称/ id的 html字段,浏览器只会发布其中一个的值.如果它们是不同的字段,那么您需要为它们指定唯一的名称/ ID,或者您需要将它们创建为数组,例如:

  <%= f.text_field_tag 'content_array[]' %>
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望这些是一帖子 - 您需要使用自定义表单添加多个子表单(每个帖子一个).

  • 一个小小的修正.浏览器会发布所有不同的字段.但是rails params解析器将使用姓氏的值.您可以通过检查rails代码中的`request.body`来检查这一点. (2认同)