0

モデルのimage_uid属性をi18nしようとしているので、さまざまな言語でさまざまな画像を使用できます。私は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-rewriteとgemsを使用すると、次のrack-cacheようになります。

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 に答える