2010-09-01 7 views
41

Un grand nombre de mes utilisateurs continuent d'accéder à l'URL de l'application (http://(rails), mais je n'ai pas de blog. J'ai finalement mis en place un blog Posterous et je veux maintenant y diriger mes utilisateurs. Y at-il un moyen de configurer cela en utilisant routes.rb? Y a-t-il un meilleur moyen qui n'implique pas d'éditer le fichier httpd.conf? Dépend de la version de Rails que vous utilisez.Création d'une route de rails vers une URL externe

Répondre

57

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

Merci pour votre aide. Des suggestions sur quel contrôleur pour le mettre ou quoi nommer un nouveau contrôleur d'aide? –

+1

Et si vous voulez utiliser target = "_ blank" dans votre itinéraire? Pourrait être spécifié un itinéraire comme celui-ci: def external_url(); "http://example.com/blog"; fin défini dans routes.rb? Je pense que la seule solution pour ceux-là est de les définir comme des aides. – tothemario

+0

Merci beaucoup! –

58

Je sais que c'est vieux, donc au cas où quelqu'un d'autre a besoin cela pour rails 4:

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

Utilisez get à la place de Match in Rails 4, sinon vous obtiendrez une erreur d'exécution

+0

Cela a semblé fonctionner pour moi mais j'ai un problème avec un client utilisant Internet Explorer: File Association Mime Type: application/json, Windows ne reconnaît pas ce type MIME. – user1434177

+0

Très utile pour ce que je travaillais. Merci beaucoup! – kdweber89

+0

Est-ce que quelqu'un sait comment faire cela dans les rails 5? Cela ne semble pas fonctionner comme dans Rails 4, mais je n'arrive pas à trouver des ressources sur ce sujet pour les rails 5. Je continue à obtenir un 404. – JohnSalzarulo