我正在尝试使用simple_form循环一个值数组。
其中@resume.employerorg保存以下值:
"Kaiser Santa Clara医院“、"Kaiser医院”、"UC医疗中心“、"UCD医疗中心”、“一些医院”、"Sutter Auburn Faith医院“、"Kaiser Roseville医院”、"Sutter Roseville医院“
在我看来,我有以下几点
<h3>7. Employer Names</h3>
<%= simple_form_for @resume do |f| %>
<% @resume.employerorg.each do |i| %>
<%= f.input :employerorg, label: 'First Employer' %>
<%= f.button :submit %>
<% end %>
<br/>
<% end %>但这将创建8个输入字段,每个字段都填充
凯撒圣克拉拉医院凯泽医院UC医疗中心UCD医疗中心一些医院萨特奥本信仰医院凯泽罗斯维尔医院萨特罗斯维尔医院
如何用数组中的单个项填充每个输入,而不是用整个数组填充每个输入8次?
发布于 2017-06-30 20:26:45
<h3>7. Employer Names</h3>
<%= simple_form_for @resume do |f| %>
<% @resume.employerorg.each do |i| %>
<%= f.input :employerorg, label: 'First Employer' %>
<%= f.button :submit %>
<% end %>
<br/>
<% end %>了解这里发生了什么:每次告诉Rails .each do一个对象集合时,如果您愿意的话,指定一个“指针”来引用每个对象,在您的例子中,您已经指定了i。
如果您使用一个简单的数组作为输入,则只需使用i输出该值。
正如Fredrico所提到的,您还应该使用对象的索引来生成您的ID。
<h3>7. Employer Names</h3>
<%= simple_form_for @resume do |f| %>
<% @resume.employerorg.each do |i, index| %>
<%= f.input "emp-#{index}".to_sym, label: "Employer: #{index}", input_html: {value: i} %>
<% end %>
<br/>
<% end %>发布于 2017-06-30 19:59:39
您应该使用i的值来生成输入。就像这样:
<h3>7. Employer Names</h3>
<%= simple_form_for @resume do |f| %>
<% @resume.employerorg.each_with_index do |i, index| %>
<% input_id = "employerorg_#{index}".to_sym %>
<%= f.input input_id, label: 'First Employer', input_html: {value: i} %>
<%= f.button :submit %>
<% end %>
<br/>
<% end %>您需要基于项input_id生成index。否则,所有输入都将具有相同的名称和ID,并且不会被区分。
https://stackoverflow.com/questions/44852788
复制相似问题