Skip to content

Instantly share code, notes, and snippets.

@vagmi
Forked from accuser/gist:522944
Created April 22, 2011 07:21
Show Gist options
  • Save vagmi/936206 to your computer and use it in GitHub Desktop.
Save vagmi/936206 to your computer and use it in GitHub Desktop.
custom 404 error page
# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
rescue_from(ActionController::RoutingError) {
render :template => 'errors/404'
}
end
# config/initializers/show_exceptions.rb
require 'action_dispatch/middleware/show_exceptions'
module ActionDispatch
class ShowExceptions
private
def render_exception_with_template(env, exception)
body = ErrorsController.action(rescue_responses[exception.class.name]).call(env)
log_error(exception)
body
rescue
render_exception_without_template(env, exception)
end
alias_method_chain :render_exception, :template
end
end
# app/controllers/errors_controller.rb
# just for not found
class ErrorsController < ApplicationController
def not_found
respond_to do |format|
format.html { render e, :status=>e }
format.any { head e }
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment