我尝试使用模块Cloudinary::CarrierWave
,但我的所有图像都存储在云的根文件夹中。
我希望我的所有文件都放到一个特定的远程文件夹中。
我在我的课堂上尝试这样做:
class PhotoUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
def storage_identifier
'specific_folder'
end
end
我知道Cloudinary::Upload.upload
有一些选项,但由于我在ruby on rails中使用简单表单,所以无法访问此方法。
有没有人有办法解决这个问题?
发布于 2018-08-19 00:37:30
当使用Carrierwave进行服务器端上传时,您可以使用如下代码:
classPictureUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
...
def public_id
return "my_folder/" + model.short_name
end
end
如果您使用的是客户端上传,可以在构建上传标签时设置文件夹参数:
<%= f.cl_image_upload(:image, :folder => "my_folder") %>
发布于 2018-08-26 15:30:19
多亏了你的回答,我在你的帮助下解决了这个问题,我还可以给出一些其他的建议。
我做了类似这样的事情来分离文件夹,但有时model.id并不存在(我应该添加一个if )
def public_id
"artpieces/#{model.class}/#{model.id}"
end
这段代码对我不起作用:
<%= f.cl_image_upload(:image, :folder => "my_folder") %>
我可以直接写:
<%= f.input :photo, input_html: {accept: ('image') } %>
因为我的输入已经是一个PhotoUploader,所以在模型中像这样声明:
mount_uploader :photo, PhotoUploader
https://stackoverflow.com/questions/51898990
复制相似问题