Разная метка для каждой итерации - PullRequest
1 голос
/ 28 сентября 2010

в следующем коде я хочу назначить разные метки для текстового поля для каждой итерации.

<%= 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 ]

1 голос
/ 28 сентября 2010

Вы могли бы сделать что-то вроде этого:

<% 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, так как это позволит убедиться, что при нажатии на метку текстовое поле получит фокус.Но значение метки может быть переопределено, как я это сделал здесь.

Я не совсем уверен, что еще вы могли бы иметь в виду при изменении метки для каждого элемента, поэтому, если бы вы могли сделать это более понятным.

Надеюсь, это поможет.

0 голосов
/ 28 сентября 2010

Просто поместите метку на s:

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

Я думаю, что это должно сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...