运营商波版本存储URL

时间:2013-07-07 23:22:49

标签: ruby-on-rails ruby-on-rails-3 carrierwave

我正在尝试为正在上传到载波的文件设置store_dir,但我想要一个特定的url结构(就像我使用了paperclip)。我有两个版本:main和:thumb,但似乎使用model.id存储的url是/MODEl/ID/VERSION_IMAGENAME.FILETYPE。我试图弄清楚如何将网址结构为/MODEL/ID/VERSION/IMAGENAME.FILETYPE,但我没有运气。有什么帮助吗?

示例网址:

/event/1/main_IMG1922.JPG,但我想有/event/1/main/IMG1922.JPG。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以执行此操作,覆盖此carrierwave wiki page

上显示的full_filenamefull_original_filename方法

以下是他们将文件名从version_foo.jpg更改为foo_version.jpg的示例。根据您的需求进行定制。

module CarrierWave
  module Uploader
    module Versions
      def full_filename(for_file)
        parent_name = super(for_file)
        ext         = File.extname(parent_name)
        base_name   = parent_name.chomp(ext)
        [base_name, version_name].compact.join('_') + ext
      end

      def full_original_filename
        parent_name = super
        ext         = File.extname(parent_name)
        base_name   = parent_name.chomp(ext)
        [base_name, version_name].compact.join('_') + ext
      end
    end
  end
end