mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
log 404 status when ActiveRecord::RecordNotFound was raised (#7646)
This commit is contained in:
parent
3c48b32f6e
commit
370dcd99b7
4 changed files with 26 additions and 2 deletions
|
@ -1,5 +1,9 @@
|
|||
## Rails 4.0.0 (unreleased) ##
|
||||
|
||||
* Fix #7646, the log now displays the correct status code when an exception is raised.
|
||||
|
||||
*Yves Senn*
|
||||
|
||||
* Allow pass couple extensions to ActionView::Template.register_template_handler call. *Tima Maslyuchenko*
|
||||
|
||||
* Sprockets integration has been extracted from Action Pack and the `sprockets-rails`
|
||||
|
|
|
@ -19,7 +19,8 @@ module ActionController
|
|||
|
||||
status = payload[:status]
|
||||
if status.nil? && payload[:exception].present?
|
||||
status = ActionDispatch::ExceptionWrapper.new({}, payload[:exception]).status_code
|
||||
exception_class_name = payload[:exception].first
|
||||
status = ActionDispatch::ExceptionWrapper.status_code_for_exception(exception_class_name)
|
||||
end
|
||||
message = "Completed #{status} #{Rack::Utils::HTTP_STATUS_CODES[status]} in %.0fms" % event.duration
|
||||
message << " (#{additions.join(" | ")})" unless additions.blank?
|
||||
|
|
|
@ -37,7 +37,7 @@ module ActionDispatch
|
|||
end
|
||||
|
||||
def status_code
|
||||
Rack::Utils.status_code(@@rescue_responses[@exception.class.name])
|
||||
self.class.status_code_for_exception(@exception.class.name)
|
||||
end
|
||||
|
||||
def application_trace
|
||||
|
@ -52,6 +52,10 @@ module ActionDispatch
|
|||
clean_backtrace(:all)
|
||||
end
|
||||
|
||||
def self.status_code_for_exception(class_name)
|
||||
Rack::Utils.status_code(@@rescue_responses[class_name])
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def original_exception(exception)
|
||||
|
|
|
@ -54,6 +54,10 @@ module Another
|
|||
def with_rescued_exception
|
||||
raise SpecialException
|
||||
end
|
||||
|
||||
def with_action_not_found
|
||||
raise AbstractController::ActionNotFound
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -225,6 +229,17 @@ class ACLogSubscriberTest < ActionController::TestCase
|
|||
assert_match(/Completed 406/, logs.last)
|
||||
end
|
||||
|
||||
def test_process_action_with_with_action_not_found_logs_404
|
||||
begin
|
||||
get :with_action_not_found
|
||||
wait
|
||||
rescue AbstractController::ActionNotFound
|
||||
end
|
||||
|
||||
assert_equal 2, logs.size
|
||||
assert_match(/Completed 404/, logs.last)
|
||||
end
|
||||
|
||||
def logs
|
||||
@logs ||= @logger.logged(:info)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue