0

我正在尝试在我的模型中使用 image_uid 属性,以便我可以使用不同语言的不同图像。我正在使用 globalize3 和蜻蜓。

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

该模型非常简单:

image_accessor :image  
translates :image_uid

任何想法?

4

1 回答 1

0

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

如果您想为每种语言使用不同的图像,例如插入文本,您必须注意名称或更准确地说是 url 总是不同的,例如,您可以将语言环境附加到 url:?locale=en或命名您的文件translation.en.jpg。要指定名称,您可以使用辅助方法@model.image.name.basename.ext

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

使用rack-rewriteand rack-cachegems 它看起来像这样:

require 'dragonfly/rails/images'

Rails.application.middleware.insert_before(Rack::Cache, Rack::Rewrite) do
  rewrite %r{/media/([^/]+)/[^?]*(.*)}, '/media/$1$2'
end
于 2012-09-17T21:17:39.870 回答