Possible to create this redirecting route in Rails?

Ruby on-RailsRedirectRoutes

Ruby on-Rails Problem Overview


Is it possible to do a redirect in the routes file of a Rails app?

Specifically, I'd like to forward /j/e to /javascripts/embed.js

Right now the only way I can think to do it is to create a j controller with an e method that redirects to that.

Ruby on-Rails Solutions


Solution 1 - Ruby on-Rails

In Rails 4 and 5: (thanks @dennis)

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

In Rails 3, you can redirect inside the routes.rb file.

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

Solution 2 - Ruby on-Rails

Assuming rails version prior to 3.

You can create a new RedirectController or tuck a single function away in an existing controller, to do something like the following:

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

Then your function would do this:

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

or something for that effect.

Solution 3 - Ruby on-Rails

Root path

You can make the root path redirect to an external website:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionShpigfordView Question on Stackoverflow
Solution 1 - Ruby on-RailsSteven SorokaView Answer on Stackoverflow
Solution 2 - Ruby on-RailsTony FontenotView Answer on Stackoverflow
Solution 3 - Ruby on-RailsLucas CatonView Answer on Stackoverflow