多个上传回形针错误

时间:2016-11-22 13:55:53

标签: ruby-on-rails upload paperclip

我尝试使用像this link

这样的回形针为我的应用实现多个上传图片

实际上是简单的上传工作,但如果我尝试实现一个数组,我就会出错。

  

未定义的方法`create'for Paperclip :: Attachment: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"]

1 个答案:

答案 0 :(得分:0)

你需要一个中间模型。

在您发送的链接中,您有Rails模型图库和图片(带有图库has_many图片) - 查看异常,您有一个露营,并且有一个文件字段可以保存图片。文件字段只能保存对一个文件的引用,因此您需要创建一个模型来跟踪每个实例(或每个图片的单独列)。

你想创建一个名为&#34; CampingPicture&#34;的模型,在野营图片上设置回形针图片,设置Camping has_many:camping_pictures和CampingPictures belongs_to:camping,然后再做

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