2010-09-01 45 views
41

Muchos de mis usuarios siguen yendo a http://(rails URL de la aplicación)/blog, pero en realidad no tengo un blog. Finalmente configuré un blog Posterous y ahora quiero dirigir a mis usuarios allí. ¿Hay alguna forma de configurar esto usando routes.rb? ¿Hay una forma mejor que no implique editar el archivo httpd.conf?Creando una ruta de rieles a una URL externa

Respuesta

57

Depende de la versión de Rails que esté utilizando.

Rails 3

# in routes.rb 
match "/blog" => redirect("http://example.com/blog"), :as => :blog 

Carriles 2

# in routes.rb 
map.blog '/blog', 
    :controller => "a_helper_controller", 
    :action => "redirect_to_blog" 

# in a_helper_controller.rb 
def redirect_to_blog 
    redirect_to "http://example.com/blog" 
end 
+0

Gracias por esto. ¿Alguna sugerencia sobre qué controlador poner o qué nombre un nuevo controlador auxiliar? –

+1

¿Qué sucede si quiere utilizar target = "_ blank" en su ruta? Podría especificarse una ruta como esta: def external_url(); "http://example.com/blog"; end se define en routes.rb? Creo que la única solución para ellos es definirlos como ayudantes. – tothemario

+0

¡Muchas gracias! –

58

Sé que esto es viejo, por lo que en caso de que alguien más tiene esto para los carriles 4:

get "/blog" => redirect("http://example.com/blog") 

Utilice get en lugar de Match in Rails 4, de lo contrario obtendrá un error de tiempo de ejecución

+0

Esto pareció funcionar para mí, pero tengo un problema de un cliente que usa Internet Explorer: File Association Mime Type: application/json, Windows no reconoce este tipo MIME. – user1434177

+0

Muy útil para lo que estaba trabajando. ¡Muchas gracias! – kdweber89

+0

¿Alguien sabe cómo hacer esto en los rieles 5? Parece que no funciona como solía hacerlo en Rails 4, pero parece que no puedo encontrar recursos para esto en los rieles 5. Sigo recibiendo un 404. – JohnSalzarulo

Cuestiones relacionadas