Carrierwave俄语文件名

zol*_*ter 0 file-upload ruby-on-rails utf-8 character-encoding carrierwave

我需要保存带有俄语名称或音译文件名的文件.我试试这个:

1)在document_uploader中:

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

2)在document.rb中:

我使用相同的逻辑创建before_create回调方法,但没有看到任何结果.

上传后的文件名称如下:"______________.doc"

我该做什么?

JP *_*shy 6

如果您使用的是ruby 1.9,则可以清理文件名,因为字符不是unicode:

CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:]\.\-\+]/
Run Code Online (Sandbox Code Playgroud)