diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2018-04-20 16:36:34 -0400 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2018-04-20 16:39:02 -0400 |
commit | 5033e2c08232a5e6e740fb6c117daeb51d5ef2c1 (patch) | |
tree | 4842dff29f3805962b09a9483c9e98308659e589 /actionpack/lib/action_controller/metal | |
parent | 1e56b31dd6810806e0f5593311ff624b0eb34443 (diff) | |
parent | 297a579de4f8cb8d8144b18d85ee370558c0977c (diff) | |
download | rails-5033e2c08232a5e6e740fb6c117daeb51d5ef2c1.tar.gz rails-5033e2c08232a5e6e740fb6c117daeb51d5ef2c1.tar.bz2 rails-5033e2c08232a5e6e740fb6c117daeb51d5ef2c1.zip |
Merge pull request #29286 from vinistock/create_missing_exact_template_exception
Create MissingExactTemplate exception with separate template
Diffstat (limited to 'actionpack/lib/action_controller/metal')
-rw-r--r-- | actionpack/lib/action_controller/metal/exceptions.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_controller/metal/implicit_render.rb | 14 |
2 files changed, 5 insertions, 12 deletions
diff --git a/actionpack/lib/action_controller/metal/exceptions.rb b/actionpack/lib/action_controller/metal/exceptions.rb index 58db4a1458..ce9eb209fe 100644 --- a/actionpack/lib/action_controller/metal/exceptions.rb +++ b/actionpack/lib/action_controller/metal/exceptions.rb @@ -50,4 +50,7 @@ module ActionController class UnknownFormat < ActionControllerError #:nodoc: end + + class MissingExactTemplate < UnknownFormat #:nodoc: + end end diff --git a/actionpack/lib/action_controller/metal/implicit_render.rb b/actionpack/lib/action_controller/metal/implicit_render.rb index ac0c127cdc..d3bb58f48b 100644 --- a/actionpack/lib/action_controller/metal/implicit_render.rb +++ b/actionpack/lib/action_controller/metal/implicit_render.rb @@ -41,18 +41,8 @@ module ActionController raise ActionController::UnknownFormat, message elsif interactive_browser_request? - message = "#{self.class.name}\##{action_name} is missing a template " \ - "for this request format and variant.\n\n" \ - "request.formats: #{request.formats.map(&:to_s).inspect}\n" \ - "request.variant: #{request.variant.inspect}\n\n" \ - "NOTE! For XHR/Ajax or API requests, this action would normally " \ - "respond with 204 No Content: an empty white screen. Since you're " \ - "loading it in a web browser, we assume that you expected to " \ - "actually render a template, not nothing, so we're showing an " \ - "error to be extra-clear. If you expect 204 No Content, carry on. " \ - "That's what you'll get from an XHR or API request. Give it a shot." - - raise ActionController::UnknownFormat, message + message = "#{self.class.name}\##{action_name} is missing a template for request formats: #{request.formats.map(&:to_s).join(',')}" + raise ActionController::MissingExactTemplate, message else logger.info "No template found for #{self.class.name}\##{action_name}, rendering head :no_content" if logger super |