5

Sto cercando di raggiungere la piena internazionalizzazione dei miei percorsi in un'app Rails3.1. Sto già utilizzando lo rails-translate-routes di Francesc Pla per localizzare le azioni e le risorse del percorso. L'ultimo passo è essere in grado di tradurre le lumache per alcuni dei miei modelli.Qual è il modo migliore per tradurre le lumache nei percorsi di Rails

percorso da tradurre:

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

ho un percorso nidificato della forma

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

Ho un modello Categoria con un'istanza #<Category id: 1, slug: "pharmacy"> e lo faccio find_by_slug categoria nel mio ProductsController.

Tutte le idee su come fare tradurre il :category_slug parte del percorso?

risposta

0

Per quanto io sappia, è possibile chiamare aiutanti di traduzione direttamente dal vostro controller fino a quando si namespace correttamente con I18n.

Così il vostro ProductsController potrebbe contenere qualcosa di simile al seguente:

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

Probabilmente si dovrebbe te stesso di informare da potenziali rischi per la sicurezza di passare il params direttamente nel motore di traduzione, anche se non sono a conoscenza di alcuna. È inoltre possibile considerare lo spostarlo in un filtro precedente o nel controller dell'applicazione se verrà utilizzato in più azioni del controllore.