纸夹:一个模型中有多个“has_attached_file”

3

我模型的代码片段:

attr_accessible :package1_file_name, :package2_file_name
has_attached_file :package1
has_attached_file :package2

从我的_form(简化版)中:

<%= form_for(@submission, :html => { :multipart => true, :id => "fileupload"  }) do |f| %>
 <%= f.file_field :package1%>
 <%= f.file_field :package2%>
<% end %>

问题在于Paperclip会为数据库中的每个文件插入两个不同的条目。然而,我希望它只插入一个条目,因为我的表格有两个独立的字段:package1_file_namepackage2_file_name
是否有办法实现这一点?
谢谢!
对于Christian Varga:
也许我不应该简化我原来问题中的代码,但是在使用jQuery file upload插件之后,我的视图实际上看起来像这样:
<%= f.fields_for :uploads do |upload| %>
    <div class="row fileupload-buttonbar">
        <!-- The first upload field -->
          <span class="btn btn-success fileinput-button">
                <%= upload.file_field :package1 %>
          </span>
        <!-- The second upload field -->
          <span class="btn btn-success fileinput-button">
                <%= upload.file_field :package2 %>
          </span>
    </div>
<% end %>

upload 是当前模型的子模型。

我不确定 multipart 是否会使这两个文件字段像单独的附件一样工作,但我正在尝试将这两个附件合并为一个。

1个回答

4

好的,我已经做了一些研究,但仍无法重现你的问题。我用那段代码构建了一个测试应用程序,并且它只会将单个条目插入到数据库中。

创建项目(终端)

rails new paperclip-test
cd paperclip-test
echo "gem 'paperclip'" >> Gemfile
bundle
rails generate scaffold submission
rails generate paperclip submission package1 package2
rake db:migrate

更新模型 (submission.rb)


attr_accessible :package1, :package2
has_attached_file :package1, :styles => { :medium => "300x300>", :thumb => "100x100>" }
has_attached_file :package2, :styles => { :medium => "300x300>", :thumb => "100x100>" }

更新控制器(submissions_controller.rb

def create
    # @submission = Submission.new(params[:submission])
    @submission = Submission.create(params[:submission])
end

Update form (_form.html.erb)

<%= f.file_field :package1 %>
<%= f.file_field :package2 %>

Update view (show.html.erb)

<%= image_tag @submission.package1.url(:medium) %>
<%= image_tag @submission.package2.url(:medium) %>

运行应用程序并创建新提交

返回控制台:

sqlite3 db/development.sqlite3
select * from submissions;

结果:

1|2013-02-21 21:16:38.898602|2013-02-21 21:16:38.898602|image_1.jpg|image/jpeg|54231|2013-02-21 21:16:38.419947|image_2.jpg|image/jpeg|61766|2013-02-21 21:16:38.658720

来自https://github.com/thoughtbot/paperclip#quick-start的Paperclip说明:


我认为问题在于我在这里还使用了另一个插件:https://github.com/blueimp/jQuery-File-Upload。 - John Powel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接