我需要在simple_fields_for块内进行迭代,以将数字[0到6]分配给:day字段。

Controller

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?

最佳答案

如前所述,在合并https://github.com/rails/rails/pull/5746之后的Rails 4中是可能的。
在Rails 4中,您可以在'builder'上使用.index:

<%= f.simple_fields_for :schedules do |builder| %>
  <%= builder.input :day, value: builder.index+1 %>
<% end %>

关于ruby - 如何在simple_fields_for中进行迭代?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14468415/

10-09 20:17
查看更多