diff options
author | Armand du Plessis <adp@bank.io> | 2012-08-02 15:58:45 -0700 |
---|---|---|
committer | Armand du Plessis <adp@bank.io> | 2012-08-02 16:01:08 -0700 |
commit | c62abed8ca480216b3b6386c95935bfc24683216 (patch) | |
tree | 6c5d0c2cee172258767789cb415a64a70ef96fb2 /actionpack/lib/action_controller | |
parent | 6e523766d8a64bf18ac6d0e261c6bd962bc6c0a9 (diff) | |
download | rails-c62abed8ca480216b3b6386c95935bfc24683216.tar.gz rails-c62abed8ca480216b3b6386c95935bfc24683216.tar.bz2 rails-c62abed8ca480216b3b6386c95935bfc24683216.zip |
Collapsed dual checks (one for content headers and one for content) into a single check.
Rails includes a single character body to a head(:no_content) response to work around an old Safari bug where headers were ignored if no body sent.
This patch brings the behavior slightly closer to spec if :no_content/204 is explicity requested via a head only response.
Status comparison done on symbolic and numeric values
Not returning any content when responding with head and limited to a status code that explicitly states no content will be returned - 100..199, 204, 205, 304.
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r-- | actionpack/lib/action_controller/metal/head.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/actionpack/lib/action_controller/metal/head.rb b/actionpack/lib/action_controller/metal/head.rb index 2fcd933d32..747e1273be 100644 --- a/actionpack/lib/action_controller/metal/head.rb +++ b/actionpack/lib/action_controller/metal/head.rb @@ -29,19 +29,19 @@ module ActionController self.status = status self.location = url_for(location) if location - if include_content_headers?(self.status) + if include_content?(self.status) self.content_type = content_type || (Mime[formats.first] if formats) + self.response_body = " " else headers.delete('Content-Type') headers.delete('Content-Length') + self.response_body = "" end - - self.response_body = " " end private # :nodoc: - def include_content_headers?(status) + def include_content?(status) case status when 100..199 false |