2012-01-11 60 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樣式。