0

Мне нужно сохранить файлы с русским именем или транслитерированным именем файла. Я стараюсь это:Русские имена файлов Carrierwave

1) В document_uploader:

def filename 
    @name ||= "#{Russian::transliterate(original_filename)}.#{file.extension}" if original_filename.present? 
end 

2) В document.rb:

создать before_create метод обратного вызова с той же самой логике, но не вижу результатов.

Имя файла после загрузки, как это: «______________ документ»

Что я должен делать?

ответ

6

Если вы используете Ruby 1.9, вы можете дезинфицировать имя файла, это likley, потому что символы не юникода:

CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/