2010-03-25 5 views

risposta

6

Supponendo versione rotaie prima di 3.

È possibile creare un nuovo RedirectController o di infilare una singola funzione via in un controller esistente, di fare qualcosa di simile al seguente:

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

Poi la funzione sarebbe Effettuare ciò:

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

o qualcosa per quell'effetto.

151

Con Rails 3, è possibile reindirizzare all'interno del file routes.rb.

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

In Rails 4: (@dennis grazie)

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

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

+7

Grazie! Dovevo anche includere un ID nel mio reindirizzamento. Per chi ne ha bisogno /: id/nella partita può essere referenziato come /% {id}/nell'URL reindirizzato ... –

+6

In Rails 4, 'get '/ stories', to: redirect ('/ posts') ', come si vede nelle [guide RoR] (http://edgeguides.rubyonrails.org/routing.html#redirection). Tieni presente che non è necessario creare una vista poiché stai reindirizzando a livello di rotte. – Dennis