web-dev-qa-db-fra.com

Possible de créer cette route de redirection dans Rails?

Est-il possible de faire une redirection dans le fichier routes d'une application Rails?

Plus précisément, j'aimerais transmettre /j/e à /javascripts/embed.js

À l'heure actuelle, la seule façon de penser est de créer un contrôleur j avec une méthode e qui redirige vers cela.

43
Shpigford

En supposant Rails version avant 3.

Vous pouvez créer un nouveau RedirectController ou ranger une seule fonction dans un contrôleur existant, pour faire quelque chose comme ceci:

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

Alors votre fonction ferait ceci:

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

ou quelque chose pour cet effet.

6
Tony Fontenot

Dans Rails 4 et 5: (merci @dennis)

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

Dans Rails 3, vous pouvez rediriger à l'intérieur du fichier routes.rb.

match "/posts/github" => redirect("http://github.com/Rails.atom")
159
Steven Soroka

Chemin racine

Vous pouvez effectuer la redirection chemin racine vers un site Web externe:

root to: redirect('https://www.lucascaton.com.br/en')
0
Lucas Caton