2010-03-25 6 views
41

Ist es möglich, eine Umleitung in der Routes-Datei einer Rails App vorzunehmen?Möglich, diese Umleitungsroute in Rails zu erstellen?

Insbesondere würde Ich mag /j/e-/javascripts/embed.js

Gerade jetzt den einzigen Weg, leite ich denken kann, es zu tun ist, einen j Controller mit einem e Verfahren zu schaffen, die das umleitet.

Antwort

6

Unter der Annahme, Schienen-Version vor 3.

Sie einen neuen RedirectController erstellen oder eine einzelne Funktion entfernt in einem vorhandenen Controller stecken, so etwas wie die folgenden Funktionen ausführen: würde

map.js_embed '/j/e', 
    :controller => :redirect_controller, 
    :action => :some_function, 
    :path => "embed" 

dann Ihre Funktion tun Sie dies:

def some_function 
    if params[:path] 
    redirect_to "/javascripts/#{params[:path]}.js" 
    end 
end 

oder etwas für diesen Effekt.

151

Mit Rails 3 können Sie innerhalb der Datei routes.rb umleiten.

match "/posts/github" => redirect("http://github.com/rails.atom") 

In Rails 4: (Danke @ Dennis)

get '/stories', to: redirect('/posts') 
+7

See [http://guides.rubyonrails.org/routing.html#redirection](http://guides.rubyonrails.org /routing.html#redirection) – user664833

+7

Danke! Ich musste auch eine ID in meine Weiterleitung aufnehmen. Für diejenigen, die es brauchen:/id/in der Übereinstimmung kann verwiesen werden als /% {id}/in der umgeleiteten URL ... –

+6

In Rails 4, 'Get '/ Geschichten', um: redirect ('/ posts') ', wie in den [RoR Guides] (http://edgeguides.rubyonrails.org/routing.html#redirection) zu sehen. Beachten Sie, dass Sie keine Ansicht erstellen müssen, da Sie auf der Routenebene umgeleitet werden. – Dennis

Verwandte Themen