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