Ruby on rails Carrierwave俄语文件名

Ruby on rails Carrierwave俄语文件名,ruby-on-rails,file-upload,utf-8,character-encoding,carrierwave,Ruby On Rails,File Upload,Utf 8,Character Encoding,Carrierwave,我需要用俄语名称或音译文件名保存文件。我试试这个: 1) 在文件上传器中: def filename @name ||= "#{Russian::transliterate(original_filename)}.#{file.extension}" if original_filename.present? end 2) 在document.rb中: 我使用相同的逻辑创建了before\u create回调方法,但没有看到任何结果 上传后的文件名如下:“\uuuuuuuuuuuuuuuu

我需要用俄语名称或音译文件名保存文件。我试试这个:

1) 在文件上传器中:

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

我使用相同的逻辑创建了before\u create回调方法,但没有看到任何结果

上传后的文件名如下:“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.doc”


我应该怎么做?

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

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

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

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

当我尝试加载应用程序时,这在Rails 4.2.11.3
字符类中的空范围:/[^[:word:.-+]/
中不起作用。当我尝试加载应用程序时,这在Rails 4.2.11.3
字符类中的空范围:/[^[:word:.-+]/
中不起作用