2012-11-20 48 views
0

我在數據庫中有一列產品視圖(例如頂部,底部,正面,背面)。我正在嘗試生成一系列文件輸入,以允許用戶爲每個視圖上傳圖像。這是結果後我:在Rails中迭代創建多個文件輸入字段

... 
<label>Top</label> 
<input type="file" name="image[Top]"><br> 
<label>Bottom</label> 
<input type="file" name="image[Bottom]"><br> 
<label>Front</label> 
<input type="file" name="image[Front']"><br> 
... 

這就是我想:

<%= views = View.order('name ASC').all.map { |view| [view.name, view.id] } %> 
<%= views.each { |view| label(view); file_field('image', view) } %> 

然而,這一切確實是打印出來的views陣列幾次。希望你的Rails專家能夠指引我正確的方向。 (如果我正在屠宰Ruby,我會提前道歉。)

+0

我沒有建議,但在你嘗試的第一行不應該有'<%=',將其更改爲'<%views = ...' – 244an

回答

2

我建議將您的邏輯移出視圖到控制器或輔助方法中。您views_controller.rb:

@views = View.all.order('name ASC') 

這給你實例對象的數組,這意味着你可以通過簡單地訪問視圖名稱:現在

@views.each do |v| 
    var = v.name 
# other code for iterating on View ... 
end 

,在您看來(這應該是一個的form_for或的form_tag,所以你可以選擇圖片,並將其上傳),您可以:

<%= form_for(@catalogue) do |f| %> 
    <%= @views.each do |v| %> 
    <%= f.label v.name %> <br/> 
    <%= f.file_field v.name %> 
    <% end %> 

    <% f.submit %> 

<% end %> 
+0

真棒回答。謝謝! –

+0

我很高興,當我可以幫忙。 –