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.
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.
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")
Vous pouvez effectuer la redirection chemin racine vers un site Web externe:
root to: redirect('https://www.lucascaton.com.br/en')