2012-01-15 15 views
5

私はRails3.1アプリケーションで自分のルートを完全に国際化しようとしています。私はすでにFrancesc Plaのrails-translate-routesを使ってルートのアクションとリソースをローカライズしています。最後のステップは、私のモデルのいくつかにスラグを翻訳できるようにすることです。Railsルートでスラッグを翻訳する最も良い方法は何ですか

ルートに翻訳する:

http://myhost.com/products/pharmacy --> http://myhost.com/productos/farmacia 

私はインスタンス#<Category id: 1, slug: "pharmacy">とモデルのカテゴリを持っていると私は私のProductsControllerでfind_by_slugカテゴリを行う形

# routes.rb 
match 'products/:category_slug' => "products#index" 

のネストされたルートを持っています。

:category_slugルートの翻訳方法についてのアイデアはありますか?

答えて

0

私が知っている限り、正確に名前空間がI18nである限り、翻訳ヘルパーをコントローラから直接呼び出すことができます。私は認識していないんだけれども、あなたはおそらく翻訳エンジンに直接のparamsを渡すの潜在的なセキュリティリスクへと自分を知らせるべき

class ProductsController < ApplicationController 
    def index 
    i18n_slug = I18n.t("locale.category.#{params[:category_slug]}") 
    @category = Category.find_by_slug(i18n_slug) 
    end 
end 

だからあなたのProductsControllerは、次のようなものを含めることができます。 を複数のコントローラーアクションで使用する場合は、前のフィルターまたはアプリケーションコントローラーに移動することも考えられます。

関連する問題