【发布时间】:2015-12-06 05:48:06
【问题描述】:
我正在使用 CarrierWave 和 Cloudinary 将多张图片上传到我的博文。我从浏览器上传它们。
使用post 表单中的文件字段会发生这种情况。
<%=file_field_tag "images[]", type: :file, multiple: true %>
提交表单时,会为每个图像创建一个picture 实例,并将图像上传到 Cloudinary。
def create
@post = Post.new(post_params)
if @post.save
if params[:images]
params[:images].each do |image|
@post.pictures.create(image: image)
Cloudinary::Uploader.upload(image)
end
end
end
end
我使用的 ImageUploader 几乎是默认的(除了包含 cloudinary 插件)
class ImageUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
现在,图像正在保存到我的服务器,并且图像正在上传到 cloudinary。但不知何故,public_id's 永远不会匹配。有谁明白为什么不?当我调用Cloudinary::Uploader.upload(image) 时是否创建了新的public_id?
【问题讨论】:
标签: ruby-on-rails carrierwave cloudinary