Carrierwave俄语文件名

时间:2012-03-15 16:03:45

标签: ruby-on-rails file-upload utf-8 character-encoding carrierwave

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

1)在document_uploader中:

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

2)在document.rb中:

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

上传后的文件名称:“______________。doc”

我应该做什么?

1 个答案:

答案 0 :(得分:6)

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

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