0

我在数据库中有一列产品视图(例如顶部、底部、正面、背面)。我正在尝试生成一系列文件输入,以允许用户为每个视图上传图像。这是我追求的结果:

...
<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,我提前道歉。)

4

1 回答 1

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 %>
于 2012-11-20T22:57:20.783 回答