2012-06-12 83 views
0

我试图在我的模型中设置image_uid属性,这样我就可以拥有不同的图像和不同的语言。我正在使用globalize3和蜻蜓。使用全球化的蜻蜓

问题是,根本不工作。它通常上传西班牙文图像(这是我的应用中的默认语言环境),但它不适用于其他语言环境。我没有得到任何错误或追踪,它只是不起作用。

的模式很简单:

image_accessor :image 
translates :image_uid 

任何想法?

回答

0

:image_uid是唯一的ID来识别图像,因此不适合翻译。但是,如果:image_name属性存在,Dragonfly将其用作文件名。

如果因为插入文字等原因你想为每种语言设置不同的图像,那么必须注意名称或更确切的说URL总是不同的。您可以将语言环境附加到网址:?locale=en,或将文件命名为translation.en.jpg。要指定名称,您可以使用帮助程序方法@model.image.name.basename.ext

如果您只想更改文件名并始终具有相同的映像,则需要使用url重写引擎并在缓存之前删除文件名。否则将创建相同映像的不需要的副本,并浪费磁盘空间和处理能力。

使用rack-rewriterack-cache宝石它看起来类似的东西:

require 'dragonfly/rails/images' 

Rails.application.middleware.insert_before(Rack::Cache, Rack::Rewrite) do 
    rewrite %r{/media/([^/]+)/[^?]*(.*)}, '/media/$1$2' 
end