2010-09-01 2 views
41

Molti dei miei utenti continuano a passare all'URL di app http://(rails), ma in realtà non ho un blog. Finalmente ho installato un blog Posterous e ora voglio dirigere i miei utenti lì. C'è un modo per configurarlo usando routes.rb? C'è un modo migliore che non implichi la modifica del file httpd.conf?Creazione di un percorso di rails verso un URL esterno

risposta

57

Dipende dalla versione di Rails che si sta utilizzando.

Rails 3

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

Rails 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

Grazie per questo. Qualche suggerimento su quale controller metterlo o come nominare un nuovo controller helper? –

+1

Cosa fare se si desidera utilizzare target = "_ blank" nel percorso? Potrebbe essere specificato un percorso come questo: def external_url(); "Http://example.com/blog"; fine definito in routes.rb? Penso che l'unica soluzione per quelli sia definirli come aiutanti. – tothemario

+0

Grazie mille! –

58

So che questo è vecchio, quindi nel caso in cui qualcun altro ha bisogno di questo per le rotaie 4:

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

Usa get invece di Match in Rails 4, altrimenti riceverai un errore di runtime

+0

Sembrava funzionare per me, ma ho un problema da un cliente che utilizza internet explorer: Associazione file Tipo MIME: application/json, Windows non riconosce questo tipo MIME. – user1434177

+0

Molto utile per quello su cui stavo solo lavorando. Grazie mille! – kdweber89

+0

Qualcuno sa come farlo in rails 5? Non sembra funzionare come in Rails 4 ma non riesco a trovare risorse su questo per i binari 5. Continuo a ricevere un 404. – JohnSalzarulo