【问题标题】:Multiple File uploads with paperclip without using Nested attributes使用回形针上传多个文件而不使用嵌套属性
【发布时间】:2013-08-06 04:20:19
【问题描述】:

每当我使用回形针上传多张图片时,我都会创建一个名为 images 的单独模型,并在相关模型中使用 accept_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 吗?

任何帮助表示赞赏

【问题讨论】:

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


    【解决方案1】:

    要添加多张照片,您需要提及, :html => { :multipart => true} 在表单标签中,

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

    在 file_tag 中,

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

    name photo[photo] 以便每张照片都具有相同的名称,并且可以在控制器中轻松访问。 就这样吧。。

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

    【讨论】:

    • 感谢您的回答,但是一旦我选择了一个图像,我该如何添加另一个图像..
    • 是的 jquery 已安装,我想我需要创建类似于 link_to_add 帮助器的东西,但不确定如何去做
    • 哦,我明白了,不是选择图像然后单独选择另一个图像
    • 抱歉,好像根本没有上传图片,不管我尝试 1、2 还是 3
    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多