2013-07-07 3 views
0

Я пытаюсь настроить store_dir для файлов, загружаемых на несущую волну, но мне нужна конкретная структура URL (например, я использовал скрепку). У меня есть две версии: main и: thumb, но кажется, что url, хранящийся с использованием model.id, является /MODEl/ID/VERSION_IMAGENAME.FILETYPE. Я пытаюсь понять, как структурировать URL-адрес /MODEL/ID/VERSION/IMAGENAME.FILETYPE, но мне не повезло. Любая помощь?URL-адрес несущей волны Адрес магазина

Образец URL:

/event/1/main_IMG1922.JPG, но я хотел бы иметь /event/1/main/IMG1922.JPG.

Спасибо!

ответ

0

Вы, вероятно, может сделать это переопределение full_filename и full_original_filename методы, как показано на этом carrierwave wiki page

Вот пример они показывают изменения имен файлов из 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 
+0

Могу ли я создать этот файл в инициализаторе. Я вижу, что это работает, но вики не указывают имя файла или местоположение, чтобы поместить файл, который перезаписывает эти методы. – Devan

+0

ГДЕ добавить файлы для патчей обезьян является спорным. Но он должен работать в инициализаторе. Вот связанный с ним вопрос/ответ: http://stackoverflow.com/questions/3420680/monkey-patching-in-rails-3 – Dty