Ruby 如何在一个简单的字段中进行迭代?

Ruby 如何在一个简单的字段中进行迭代?,ruby,ruby-on-rails-3,simple-form,Ruby,Ruby On Rails 3,Simple Form,我需要在简单的\u字段\u for block中迭代,为:day字段分配一个数字[0到6] 控制器 7.times { @doctor.schedules.build } 看法 显然,这将从1开始到7,如何使其从0迭代到6?JFYI,您将能够在Rails 4中获得当前索引。请参阅合并的拉取请求 现在,您可以使用以下内容: <% @doctor.schedules.each_with_index do |schedule, index| %> <%= f.simple_

我需要在简单的\u字段\u for block中迭代,为:day字段分配一个数字[0到6]

控制器

7.times { @doctor.schedules.build }
看法



显然,这将从1开始到7,如何使其从0迭代到6?

JFYI,您将能够在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 %>

与前面提到的一样,在合并之后,Rails 4中也可以这样做。 在Rails 4中,您可以在“生成器”上使用
.index

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

假设@y应该是@i,看起来它应该从0循环到6。
<%= f.simple_fields_for :schedules do |builder| %>
  <%= builder.input :day, value: builder.index+1 %>
<% end %>