diff options
-rw-r--r-- | Gemfile.lock | 6 | ||||
-rw-r--r-- | app/controllers/errors_controller.rb | 2 | ||||
-rw-r--r-- | config/initializers/exception_filter.rb | 10 | ||||
-rw-r--r-- | test/functional/errors_controller_test.rb | 14 |
4 files changed, 29 insertions, 3 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index 3dc09ce..c14847f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -101,12 +101,12 @@ GEM nokogiri (~> 1.5) rails (>= 3, < 5) daemons (1.1.9) - debugger (1.6.6) + debugger (1.6.8) columnize (>= 0.3.1) debugger-linecache (~> 1.2.0) - debugger-ruby_core_source (~> 1.3.2) + debugger-ruby_core_source (~> 1.3.5) debugger-linecache (1.2.0) - debugger-ruby_core_source (1.3.2) + debugger-ruby_core_source (1.3.5) diff-lcs (1.2.5) erubis (2.7.0) eventmachine (1.0.3) diff --git a/app/controllers/errors_controller.rb b/app/controllers/errors_controller.rb index 6c659e6..d869ab5 100644 --- a/app/controllers/errors_controller.rb +++ b/app/controllers/errors_controller.rb @@ -2,9 +2,11 @@ class ErrorsController < ApplicationController # 404 def not_found + render status: 404 end # 500 def server_error + render status: 500 end end diff --git a/config/initializers/exception_filter.rb b/config/initializers/exception_filter.rb new file mode 100644 index 0000000..18c74d9 --- /dev/null +++ b/config/initializers/exception_filter.rb @@ -0,0 +1,10 @@ +class ActionDispatch::DebugExceptions + def log_error_with_exception_filter(env, wrapper) + if wrapper.exception.is_a? ActionController::RoutingError + return + else + log_error_without_exception_filter env, wrapper + end + end + alias_method_chain :log_error, :exception_filter +end diff --git a/test/functional/errors_controller_test.rb b/test/functional/errors_controller_test.rb new file mode 100644 index 0000000..e6d2367 --- /dev/null +++ b/test/functional/errors_controller_test.rb @@ -0,0 +1,14 @@ +class ErrorsControllerTest < ActionController::TestCase + + def test_not_found_resonds_with_404 + get 'not_found' + assert_response 404 + assert_template 'errors/not_found' + end + + def test_server_error_resonds_with_500 + get 'server_error' + assert_response 500 + assert_template 'errors/server_error' + end +end |