我尝试使用模块Cloudinary::CarrierWave
,但我的所有图像都存储在云的根文件夹中。
我希望我的所有文件都转到特定的远程文件夹。
我在课堂上尝试这个:
class PhotoUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
def storage_identifier
'specific_folder'
end
end
我知道Cloudinary::Upload.upload
有一些选项,但是当我在rails上的ruby中使用简单形式时,我无法访问此方法。
有人有想法解决这个问题吗?
将Carrierwave与服务器端上载一起使用时,您可以使用如下代码:
classPictureUploader < CarrierWave::Uploader::Base
include Cloudinary::CarrierWave
...
def public_id
return "my_folder/" + model.short_name
end
end
如果您正在使用客户端上载,则可以在构建upload标记时设置folder参数:
<%= f.cl_image_upload(:image, :folder => "my_folder") %>
感谢您的回答,我在您的帮助下解决了这个问题,我可以提供一些其他提示。
我做了这样的事情来分隔文件夹,但有时model.id不存在(我应该添加一个if else)
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