2011-06-26 6 views
12

Estoy portando el sitio web existente de PHP a Ruby on Rails 3 y tengo que mantener las URL sin cambios.¿Cómo generar enlaces con barra diagonal en Rails 3?

que tienen la ruta:

get 'companies/' => 'companies#index', :as => :companies 

En un archivo de vista que tengo:

link_to 'Companies', companies_path 

y esto genera la url "http://website.com/companies" en lugar de "http : //website.com/companies/ ".

Quiero la barra al final de la url. ¿Es posible?

+0

se puede saber? ¿Por qué necesitas mantener esta barra? (no es manera RESTful) – bor1s

+0

Es para fines de SEO. La página con esta URL ya existe y la redirección en este caso no es la solución. –

+1

Necesito barras inclinadas para las direcciones relativas – hiroshi

Respuesta

38

Puede agregar esto a su application.rb:

config.action_controller.default_url_options = { :trailing_slash => true } 

De esta manera todas las rutas se generarán con una barra final de forma automática , sin necesidad de modificar cada enlace en su proyecto.

22

Basta con hacer de la siguiente manera:

link_to 'Companies', companies_path(:trailing_slash => true) 

Documentation here.

+0

¡Impresionante! No sabía acerca de la opción ': trailing_slash'. –

+1

¡Muchas gracias! ¡Funciona! Pero tal vez sepa que existe la manera de hacer que los rieles agreguen automáticamente una barra al final si está presente en el patrón de url en routes.rb? –

+0

Si sabe, por favor bríndeme la solución aquí: [link] (http://stackoverflow.com/questions/6486758/how-to-make-rails-do-not-ignore-trailing-slashes-in-the- rutas) –

0

Para rieles 3.2:

Rails.application.routes.default_url_options[:trailing_slash]= true 
3

no pude encontrar ninguna referencia, pero añadiendo trainling_slash: true a la definición de la ruta también funciona (y de uno mismo evita la repetición).

get 'companies/' => 'companies#index', :as => :companies, :trailing_slash => true 

Esto fue probado con rieles 3.2.13:

rails c 
1.9.3p327 :005 > app.companies_path 
=> "http://www.example.com/companies/ 
+0

Buena solución si desea aplicar esto a una ruta específica –

Cuestiones relacionadas