5

simple_fields_for ブロック内で反復して、[0 から 6] の数字を :day フィールドに割り当てる必要があります。

コントローラ

7.times { @doctor.schedules.build }

意見

<tr>
    <% @i = 0 %>
    <%= f.simple_fields_for :schedules do |builder| %>
    <td>
    <%= builder.input :day, value: @y, wrapper: :check  %>
    <%= builder.input :is_available, as: :boolean, label: false, wrapper: :check %>
    <% @i += 1 %>
    </td>
<% end %>
</tr>

明らかにこれは 1 から 7 まで始まりますが、どうすれば 0 から 6 まで繰り返すことができますか?

4

2 に答える 2

13

参考までに、Rails 4 で現在のインデックスを取得できるようになります。このマージされたプル リクエストを参照してください。

今のところ、次のようなものを使用できます。

<% @doctor.schedules.each_with_index do |schedule, index| %>
  <%= f.simple_fields_for :schedules, schedule do |ff| %>
    <%= ff.input :day, value: index %>
  <% end %>
<% end %>
于 2013-01-23T21:39:24.850 に答える