2012-01-11 88 views
0

我有10个表单字段,我想在每个字段旁边追加一个数字,顺序从1到10.问题是,代码已经在循环。它在部分内部,部分通过集合。如何在Ruby on Rails表单中创建数字序列

<%= fields_for "list", f do |f| %> 
    <!-- I want 1, 2, etc to appear here depending on the iteration. --> 
    <%= f.label :name %> 

我尝试使用<%= i += 1 %>但因为i不工作没有定义。如果我定义了i,它将不断重置为相同的数字,所以它没有区别。有任何想法吗?

回答

4

Rails自动定义一个名为partialname_counter的局部变量,很明显,“partialname”是您的部分名称。所以如果你的部分被称为例如_list_item.html.erb你可以写这样的:

<%= fields_for "list", f do |f| %> 
    <%= list_item_counter + 1 %> 
    <%= f.label :name %> 
<% end %> 

(该+ 1,当然是有原因的计数器从0。)

另一个选项将只是让浏览器做您使用有序列表的编号:

查看:

<ol> 
    <%= render :list_item, :collection => @some_items %> 
</ol> 

...并在部分:

<%= fields_for "list", f do |f| %> 
    <li> 
    <%= f.label :name %> 
    </li> 
<% end %> 

此选项可能是更多的语义,并列出很容易在CSS样式。

相关问题