Reputation: 42863
How can I redirect a misspelled url to some default url in case a user mistypes a url?
Upvotes: 3
Views: 1206
Reputation: 1805
You can rescue ActionController::RoutingError from application_controller, like CanCan suggests for unauthorized access:
class ApplicationController < ActionController::Base
(...)
# Reditect to a default route when user inputs a wrong one
rescue_from ActionController::RoutingError do |exception|
flash[:error] = "There is no such route"
redirect_to root_url
end
end
Upvotes: 1
Reputation: 46914
You can add a default root, catch all routes.
By example an extract from Typo source code :
map.connect '*from', :controller => 'articles', :action => 'redirect'
In your controller you have a params[:from] which an Array of all params of your URL
Upvotes: 5