【问题标题】:Getting all fields in form_tag without attribute name in Ruby on rails在 Ruby on rails 中获取 form_tag 中没有属性名称的所有字段
【发布时间】:2026-01-18 19:30:02
【问题描述】:

我是 Ruby on Rails 的新手。当页面加载时,它会显示一个带有文本框的表单,其中包含一些值,同时允许用户在这些文本框中输入新值。

下面是我的视图模板代码:

<%= form_tag("/myapp/rewriteScores", :method=>'post') do %>
  <% for region_score in scores_row %>
     <%= text_field_tag 'scores',region_score.at(1),class: 'scoreValues' %>
     <%= submit_tag("Submit Values") %> 
  <% end %>
<% end %> 

现在当用户提交带有新值的表单时,如何在控制器中获取这些值?

请注意: 由于我在循环中打印值,所有输入标签都将具有相同的属性名和类名。

【问题讨论】:

  • 如果您的属性将具有相同的名称,它将仅在控制器中为您提供最后一个属性。您不能传递所有具有相同名称的字段。
  • scores_row.each_with_index do |region_score, index| &lt;%= text_field_tag 'scores_#{index}',region_score.at(1),class: 'scoreValues' %&gt; &lt;%end%&gt;

标签: ruby-on-rails ruby


【解决方案1】:

&lt;%= text_field_tag 'scores[]',region_score.at(1),class: 'scoreValues' %

将你的 text_field_tag 命名为 'scores[]'

在您的控制器中,您可以获得所有值

params["scores"] - 这将是一个值数组

【讨论】: