首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Cloudinary::CarrierWave如何在Cloudinary中选择上传文件夹

Cloudinary::CarrierWave如何在Cloudinary中选择上传文件夹
EN

Stack Overflow用户
提问于 2018-08-17 23:51:05
回答 2查看 365关注 0票数 3

我尝试使用模块Cloudinary::CarrierWave,但我的所有图像都存储在云的根文件夹中。

我希望我的所有文件都放到一个特定的远程文件夹中。

我在我的课堂上尝试这样做:

代码语言:javascript
复制
class PhotoUploader < CarrierWave::Uploader::Base
    include Cloudinary::CarrierWave
    def storage_identifier
        'specific_folder'
    end
end

我知道Cloudinary::Upload.upload有一些选项,但由于我在ruby on rails中使用简单表单,所以无法访问此方法。

有没有人有办法解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2018-08-19 00:37:30

当使用Carrierwave进行服务器端上传时,您可以使用如下代码:

代码语言:javascript
复制
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") %>

票数 1
EN

Stack Overflow用户

发布于 2018-08-26 15:30:19

多亏了你的回答,我在你的帮助下解决了这个问题,我还可以给出一些其他的建议。

我做了类似这样的事情来分离文件夹,但有时model.id并不存在(我应该添加一个if )

代码语言:javascript
复制
def public_id
  "artpieces/#{model.class}/#{model.id}"
end

这段代码对我不起作用:

代码语言:javascript
复制
<%= f.cl_image_upload(:image, :folder => "my_folder") %>

我可以直接写:

代码语言:javascript
复制
<%= f.input :photo, input_html: {accept: ('image') } %>

因为我的输入已经是一个PhotoUploader,所以在模型中像这样声明:

代码语言:javascript
复制
mount_uploader :photo, PhotoUploader
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51898990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档