2016-11-22 92 views
0

我米試圖實現多個上傳圖片爲我的應用程序回形針狀this link多個上傳回形針錯誤

其實簡單的上傳工作,但如果我試圖實現一個數組我有一個錯誤。

未定義的方法'打造」的回形針::附件:0x007f33ecb3bd30

campings_controller.rb

def create 

     @camping = Camping.new((camping_params).merge(:user_id => current_user.id)) 

     respond_to do |format| 
     if @camping.save 
      format.html { redirect_to @camping, notice: 'Camping was successfully created.' } 
      format.json { render :show, status: :created, location: @camping } 
     else 
      format.html { render :new } 
      format.json { render json: @camping.errors, status: :unprocessable_entity } 
     end 
     end 
    end 

    def update 
    @camping = Camping.find(params[:id]) 
    if params[:image] 
     params[:image].each do |image| 
      @camping.create(image: image) 
     end 
     end 
     end 

_edit.html.erb

<%= file_field_tag "image[]", type: :file, multiple: true %> 

camping.rb

has_attached_file :image, default_url: "/images/missing.jpg" 
    validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"] 

回答

0

您需要一箇中間模型。

在您發送的鏈接中,您有Rails模型庫和圖片(帶有圖庫has_many圖片) - 查看例外情況,您有一個Camping,並且有一個文件域用於保存圖片。文件字段只能保存對一個文件的引用,因此您需要創建一個模型來跟蹤每個實例(或每個圖片的單獨列)。

你想創建一個名爲「CampingPicture」模式,設置露營圖片回形針圖像,設置露營的has_many:camping_pictures和CampingPictures belongs_to的:露營,然後做

params[:image].each do |image| 
    @camping.camping_pictures.create(image: image) 
end