2012-01-15 23 views
5

Rails3.1 uygulamasında rotalarımın tam uluslararasılaştırılmasını sağlamaya çalışıyorum. Rota eylemlerini ve kaynaklarını yerelleştirmek için zaten Francesc Pla'nın rails-translate-routes kullanıyorum. Son adım, bazı modellerim için sümüklüböcekleri çevirebilmek. Rails rotalarında sümüklü böcekleri çevirmenin en iyi yolu nedir?

Rota

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

ben bir örneği #<Category id: 1, slug: "pharmacy"> bir model Kategori var ve benim ProductsController içinde find_by_slug kategoriyi yapmak formu

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

iç içe geçmiş bir yol var.

Rotanın bir kısmının çevirisi nasıl yapılır? :category_slug

cevap

0

Farkında olduğum kadarıyla, doğru olarak ad alanınız I18n ile doğru olarak iseniz, çeviri yardımcılarını doğrudan denetleyicinizden de arayabilirsiniz. Hiç farkında değilim gerçi, Muhtemelen çeviri motoruna doğrudan params geçme potansiyel güvenlik risklerine olarak kendinizi bildirmelidir

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

:

Yani ProductsController aşağıdaki gibi bir şey içerebilir. Ayrıca, birden çok denetleyici eyleminde kullanılacaksa, bir önceki filtreye veya uygulama denetleyicisine taşıyarak 'u düşünebilirsiniz.

İlgili konular