【问题标题】:Cloudinary::CarrierWave how to select the upload folder in CloudinaryCloudinary::CarrierWave 如何在 Cloudinary 中选择上传文件夹
【发布时间】:2019-01-24 17:00:57
【问题描述】:

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

我希望我的所有文件都转到特定的远程文件夹。

我在课堂上试试这个:

class PhotoUploader < CarrierWave::Uploader::Base
    include Cloudinary::CarrierWave
    def storage_identifier
        'specific_folder'
    end
end

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

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

【问题讨论】:

    标签: ruby-on-rails carrierwave cloudinary


    【解决方案1】:

    在使用 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") %>

    【讨论】:

      【解决方案2】:

      感谢您的回答,我在您的帮助下解决了这个问题,并且可以提供一些其他提示。

      我做了这样的事情来分隔文件夹,但有时 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
      

      【讨论】:

        猜你喜欢
        • 2018-06-23
        • 2015-12-05
        • 2016-12-22
        • 2013-06-17
        • 2013-08-04
        • 2015-10-22
        • 2021-04-18
        • 2014-08-10
        • 2017-04-09
        相关资源
        最近更新 更多