我尝试使用像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"]
答案 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