Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何访问迭代计数器?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何访问迭代计数器?

Ruby on rails 如何访问迭代计数器?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在RubyonRails中,如何访问循环中的迭代计数器 下面的方法可行,但是使用child\u number变量有点麻烦。有没有更好的方法来实现这一点 <% 5.times { @parent.child.build } %> <%= form_for @parent do |parent_form| %> <p> <%= parent_form.label :full_name, "Parent's name" %> <

在RubyonRails中,如何访问循环中的迭代计数器

下面的方法可行,但是使用
child\u number
变量有点麻烦。有没有更好的方法来实现这一点

<% 5.times { @parent.child.build } %>

<%= form_for @parent do |parent_form| %>
  <p>
    <%= parent_form.label :full_name, "Parent's name" %>
    <%= parent_form.text_field :full_name %>
  </p>

  <%= parent_form.fields_for :children do |child_form| %>
    <% @child_number ||= 1 %>
    <p>
      <%= child_form.label :full_name, "Child #{@child_number}'s name" %>
      <%= child_form.text_field :full_name %>
    </p>
    <% @child_number += 1 %>
  <% end %>

  <p>
    <%= parent_form.submit %>
  </p>
<% end %>



这只是索引关联:

<% 5.times do {@parent.children.build } %> 
#should be in your controller

    <%= form_for @parent do |parent_form| %>
        <%= parent_form.fields_for :children do |child_form| %>
            This will return the index
            <%= parent_form.object.children.index(child_form.object) %>
        <% end %>
    <% end %> 

#应该在你的控制器里
这将返回索引

确保关联正确,但逻辑良好。

这只是索引关联:

<% 5.times do {@parent.children.build } %> 
#should be in your controller

    <%= form_for @parent do |parent_form| %>
        <%= parent_form.fields_for :children do |child_form| %>
            This will return the index
            <%= parent_form.object.children.index(child_form.object) %>
        <% end %>
    <% end %> 

#应该在你的控制器里
这将返回索引

确保我的关联正确,但逻辑良好。

好吧,它将出现在Rails 3.2-

…我会将其分配给3.2里程碑

看起来像

现在,您可以使用类似的方法:

<% 5.times { @parent.child.build } %>

<%= form_for @parent do |parent_form| %>
  ...
  <%= parent_form.fields_for :children do |child_form| %>
    <p>
      <%= child_form.label :full_name, "Child #{child_form.object_name.gsub(/[^0-9]+/,'')}'s name" %>
      <%= child_form.text_field :full_name %>
    </p>
  <% end %>
  ...
<% end %>

...

...
好吧,它将出现在Rails 3.2-

…我会将其分配给3.2里程碑

看起来像

现在,您可以使用类似的方法:

<% 5.times { @parent.child.build } %>

<%= form_for @parent do |parent_form| %>
  ...
  <%= parent_form.fields_for :children do |child_form| %>
    <p>
      <%= child_form.label :full_name, "Child #{child_form.object_name.gsub(/[^0-9]+/,'')}'s name" %>
      <%= child_form.text_field :full_name %>
    </p>
  <% end %>
  ...
<% end %>

...

...
使用可枚举每个带有索引的\u

       ().each_with_index do |elem,i|
        end

使用可枚举带索引的每个\u

       ().each_with_index do |elem,i|
        end

你的问题有点模糊。我相信您对访问loopp的parent_form.fields_中的迭代计数器感兴趣,但这并不是很明显。是的,这正是我想要做的。您的问题有些模糊。我相信您有兴趣访问loopp的父表单字段中的迭代计数器,但这并不是很明显。是的,这正是我要做的。我想您可以解决其他问题。对不起。-1这将创建5个表单。每个人都有越来越多的孩子。P.S.nash不是OPI,尽管你可以找出其他的抱歉。-1这将创建5个表单。每个人都有越来越多的孩子。P.S.纳什不是OP