2014-11-24 113 views
0

我有一个名为ListingInformationFrom的模型。我已经添加了两个回形针迁移:logo和loan_image。当我在表单中上传两张不同的图片时,保存的网址会显示相同的图片。有人可以告诉我如何将两个单独的图像上传到一个模型?在rails上使用s3和回形针上传两个图像应用程序

ListingInformationForm.rb

class ListingInformationForm < ActiveRecord::Base 
     # Image uploading 
     has_attached_file :logo, 
          :styles => { :medium => "300x300>", :thumb => "100x100>" }, 
          :storage => :s3, 
          :url => ":s3_domain_url", 
          :path => "images/:class/:id.:style.:extension" 
     has_attached_file :loan_image, 
          :styles => { :medium => "300x300>", :thumb => "100x100>" }, 
          :storage => :s3, 
          :url => ":s3_domain_url", 
          :path => "images/:class/:id.:style.:extension" 
    end 

的形式包括如下:

 <%= form_for @listing_information_form, url: business_listing_information_form_path(@user), :html => { :multipart => true } do |f| %> 
     <div class="row"> 
     <div class="form-group"> 
      <div class="col-md-5"> 
       <%= f.label :logo, :class => "control-label required" %> 
      </div> 
      <div class="col-md-7"> 
       <%= f.file_field :logo %> 
      </div>  
     </div> 
    </div> 
    <div class="row"> 
     <div class="form-group"> 
      <div class="col-md-5"> 
       <%= f.label :loan_image, :class => "control-label required" %> 
      </div> 
      <div class="col-md-7"> 
       <%= f.file_field :loan_image %> 
      </div>  
     </div> 
    </div> 
    <% end %> 

listing_information_forms_controller.rb

def listing_information_form_params 
    params.require(:listing_information_form).permit(:loan_id, :logo, :loan_image) 
end 

S3配置在development.rb

# s3 config 
    config.paperclip_defaults = { 
    :storage => :s3, 
    :s3_credentials => { 
    :bucket => ENV['AWS_BUCKET'], 
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['AWS_SECRET_KEY_ID'] 
    } 
    } 

回答

0

请确保您已经于您的形式加入:html => { :multipart => true }。 像

<%= form_for @listinformation, :url => listinformation_path, :html => { :multipart => true } do |form| %> 
    <%= form.file_field :logo %> 
    <%= form.file_field :logo_image%> 
<% end %> 

如果您使用Rails的4.x版,请确保您有定义它强大的参数。

def listinformation_params 
    params.require(:listinformation).permit(:logo, :logo_image) 
end 

如果你仍然面临困难

+0

,请复制粘贴你的错误,我没有收到任何具体的错误。我看到图像被imagemagick调整大小,但保存到s3中的文件是相同的。我在form_for块和图像参数中也有多部分颂词 – Questifer 2014-11-26 23:29:57

相关问题