使用回形针进行多个文件上载而不使用嵌套属性

时间:2013-08-05 12:45:38

标签: ruby ruby-on-rails-3 forms activerecord paperclip

每当我使用paperclip上传多个图像时,我创建了一个名为images的单独模型,并在相关模型中使用accepts_nested_attributes_for ..

但是如果我想在不使用它的情况下添加多个图像呢?例如,如果我的模型看起来像这样

class Portfolio < ActiveRecord::Base
  belongs_to :sector

  attr_accessible :overview, :title, :sector_id, :photo
  has_attached_file :photo, :styles => { :portfolio => "680x680#"}
end

我的表单看起来像这样

<%= form_for @portfolio do |f| %>

    <%= f.label :title, "Title", :class => 'title_label' %>
    <%= f.text_field :title %>

    <%= f.label :sector_id, "Choose Sector", :class => 'title_label' %><br>
    <%= f.collection_select(:sector_id, Sector.all, :id, :name, :prompt => "Please Select a Sector") %><br>

    <%= f.label :overview, "Overview", :class => 'title_label'  %>
    <%= f.text_area :overview %><br>

    <%= f.file_field :photo %><br><br>


    <%= f.submit 'Submit', :class => 'btn' %>

    <% end %>

如何在这种情况下上传多个图像。通常在嵌套表单中,例如我会使用提供的link_to_add助手。

虽然这个场景我没有这个,所以我该怎么办?

始终将附件/照片分开并使用nested_attributes是最好的吗?

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

要添加多张照片,您需要提及:html =&gt; {:multipart =&gt;在表格标签中为true,

<%= form_for(@portfolio, :html => { :multipart => true}) do |f| %>

,在file_tag中,

<%= f.file_field :photo, as: :file, multiple: true, name: 'photo[photo]' %>

命名照片[照片] ,这样每张照片都会得到相同的名称,并且可以在控制器中轻松访问。 只是它... ..

注意:我认为您正在使用带有回形针的jquery来上传照片。如果没有试试这个,让我知道它是否有效..;)