每次迭代的不同标签

时间:2010-09-28 10:12:17

标签: ruby-on-rails

在下面的代码中,我想为每次迭代为文本字段分配一个不同的标签。

<%= f.field_for :skills do |s|  %>
    <li>
      <label>Skills</label>
      <%= s.text_field :name %>
    </li>
<% end %>

我该怎么做? 这是我的控制器代码,我在其中创建了三个不同的技能对象:

def edit
    3.times{resource.skills.build}
    render_with_scope :edit
end

2 个答案:

答案 0 :(得分:1)

你可以这样做:

<% counter = 0 %>
<%= f.fields_for :skills do |s|  %>
  <li>
    <%= s.label :name, "Skill #{counter}" %>
    <%= s.text_field :name %>
    <% counter = counter + 1 %>
  </li>
<% end %>

最好使用s.label :name,因为这样可以确保在单击标签时,文本框将获得焦点。但是标签的价值可以被推翻,就像我在这里所做的那样。

我不太清楚改变每件商品的标签还有什么意义,所以如果你能做得更清楚的话。

希望这有帮助。

答案 1 :(得分:0)

只需将标签范围限定为s

<%= f.field_for :skills do |s|  %>
<li>
  <%= s.label :name, 'Skills' %>
  <%= s.text_field :name %>
</li>
<% end %>

我认为应该这样做。

相关问题