【问题标题】:How to store file with unicode characters using paperclip如何使用回形针存储带有 unicode 字符的文件
【发布时间】:2013-10-09 14:06:45
【问题描述】:

我正在使用回形针 gem 来处理一些图像并将它们存储到 Amazon S3。每个图像代表一个人的名字。我也想添加对带有 unicode 字符的名称的支持,但由于回形针无法上传名称中带有 unicode 字符的文件,我无法使其工作。 我不能在上传之前将 Ñ 更改为 N,因为那样我会覆盖用字母 N 上传的图像。 例如。 两个用户:NUÑO 和 NUNO。我不能只告诉回形针将 NUÑO.jpg 上传为 NUNO.jpg,因为这会覆盖以前的 NUNO.jpg。

这是我非常标准的生产/登台环境配置:

config.paperclip_defaults = {
  :storage => :s3,
  :url => ':s3_domain_url',
  :path => 'assets/:class/:id/:style.:extension',
  :s3_credentials => {
    :bucket => ENV['AWS_BUCKET'],
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'],
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY_ID']
  }
}

这是带有图片附件的相关类:

class NameSpread < ActiveRecord::Base
(...)
  has_attached_file :rendered_image,
    default_url: lambda { |attach| attach.instance.processing_image },
    path: lambda { |attach| attach.instance.save_path },
    styles: { (..) },
    processors: [ :name_spread_processor ],
    default_style: :spread
(...)
end

这里是 save_path 方法:

def save_path
  if Rails.env.production? || Rails.env.staging?
    "assets/:class/#{gender}/#{name}/:style.jpg"
  else
    "#{Rails.root}/public/assets/:class/#{gender}/#{name}/:style.jpg"
  end
end

这是搞砸的部分:#{name}

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails-3 paperclip


    【解决方案1】:

    经过两天的调试,我找到了解决办法。

    我从 ruby​​ 1.9.2 更新到 2.0.0,现在一切正常...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 2011-10-06
      • 2015-08-10
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2023-03-17
      相关资源
      最近更新 更多