summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile.lock6
-rw-r--r--app/controllers/errors_controller.rb2
-rw-r--r--config/initializers/exception_filter.rb10
-rw-r--r--test/functional/errors_controller_test.rb14
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