2011-04-24 77 views
0

我有一個模型「tube」,它是一個數據庫,其中包含真空管的各種數據。我想要動態循環遍歷所有列,併爲我的「新建」和「編輯」頁面創建基本表格。 我搶的屬性名稱是這樣的:Rails:循環遍歷數組創建輸出

<%attr_array = @ tube.attribute_names%>

我想要做這樣的事情:

<%attr_array。每個{| X | text_field:X}%>

在動態生成這種希望

<%=的form_for @tube做| F | %> <%= f.label:姓名,:類=> 'std_label' %>:
<%= f.text_field:姓名,:類=> 'std_input' %>
<%= f.label :functional_class,:類=> 'std_label' %>:
<%= f.text_field:functional_class,:類=> 'std_input' %>
<%= f.label:base_type,:類=>'std_label '%>:
<%= f.text_field:base_type,:類=>' std_input」%>
....等.... <%= f.submit%> <%E nd%>

但是,當然這不起作用,不是遠射。如何根據attribute_names數組動態生成我的text_field輸入?我使用的表格大約有30個屬性,我認爲手工構建它們是非常愚蠢的,特別是如果它們在未來發生變化,那麼代碼將會崩潰。谷歌搜索和API閱讀給了我爲什麼這不起作用的講座,但留下了我幹,與一個代碼示例幹什麼。

準確的幫助讚賞。

回答

2

關於什麼:

<%= form_for @tube do |f| %> 
    <% @tube.attribute_names.each do |attr| %> 
    <%= f.text_field attr, :class=>'std_input' %> 
    <%= f.label attr, :class=>'std_label' %>: 
    <% end %> 
<%= f.submit %> 
<% end %> 
+0

apneadiving,你搖滾。這很好,謝謝。我必須更多地研究這個,並區分「.each do | x |」和「.each {| x | ...}」在我頭腦中紮實。 – noogrub 2011-04-24 15:39:20

+0

很高興知道它有幫助。你提出的兩種編碼方式沒有區別,只是品味的問題。 – apneadiving 2011-04-24 15:42:56