2012-01-15 14 views
5

que estoy tratando de lograr la plena internacionalización de mis rutas en una aplicación Rails3.1. Ya estoy usando Francesc Pla de rails-translate-routes para localizar las acciones y los recursos de ruta. El último paso es poder traducir babosas para algunos de mis modelos.¿Cuál es la mejor manera de traducir las babosas en las rutas de Rails

ruta a ser traducida:

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

tengo una ruta anidada de forma

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

tengo una categoría modelo con una instancia #<Category id: 1, slug: "pharmacy"> y hago find_by_slug categoría en mi ProductsController.

Cualquier ideas sobre cómo hacer traducir la parte :category_slug de la ruta?

Respuesta

0

Por lo que yo sé, puede llamar asistentes de traducción directamente desde el controlador de todo el tiempo que espacio de nombres correctamente con I18n.

Así que su ProductsController podría contener algo como lo siguiente:

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

Probablemente debería informarse de los posibles riesgos para la seguridad de los parametros que pasa directamente en el motor de traducción, aunque no estoy al tanto de ninguna. También puede considerar en movimiento que en un antes filtro o en el controlador de la aplicación si se va a utilizar en múltiples acciones del controlador.

Cuestiones relacionadas