【问题标题】:Carrierwave + Rails 5: read directory vs store directoryCarrierwave + Rails 5:读取目录与存储目录
【发布时间】:2017-05-12 18:11:28
【问题描述】:

Carrierwave 的enter link description here 提供了 Carrierwave 上传文件的目录和 Carrierwave 查找文件的目录。但是,我想知道是否有办法定义类似 read_dir 的东西,这将是 Carrierwave 查找文件的路径,而留下 store_dir 仅用于存储文件。

我知道这可能没有多大实际意义,但我只是想知道。

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    您可以根据对象的某些条件计算store_dir。当您需要不同的目录时,您也可以设置此条件。例如:

    class MyModel < ActiveRecord::Base
      attr_accessible :use_directory_for_storing
    
      mount_uploader :file, MyFileUploader
    end
    
    class MyFileUploader < CarrierWave::Uploader::Base
      # ...
      def store_dir
        if model.use_directory_for_storing
          "some/directory/for/storing"
        else
          "some/directory/for/reading"
        end
      end
    end
    
    # Usage
    
    object = MyModel.new(params)
    object.use_directory_for_storing = true
    
    object.save # the file will be stored in ".../some/directory/for/storing/" directory
    
    object = MyModel.last
    # will look for the file in the ".../some/directory/for/reading/" directory
    object.file.path # => ".../some/directory/for/reading/..."
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-10
      • 2016-02-11
      • 1970-01-01
      • 2016-03-05
      • 2012-11-25
      • 2014-03-05
      • 2011-01-29
      相关资源
      最近更新 更多