aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2012-05-08 00:52:31 -0700
committerJosé Valim <jose.valim@gmail.com>2012-05-08 00:52:31 -0700
commitfc5c41e9424e49db77245de4d17031ebb3e96b5c (patch)
tree880ef8d0ade5b0ec39ff0cf04057758ab77df8a4 /actionpack/lib/action_controller
parentc52ba1b372be08b46fd94deaf1ff382463785c7f (diff)
parentc09a92fb9e08ee36d795a237899d3439930ef784 (diff)
downloadrails-fc5c41e9424e49db77245de4d17031ebb3e96b5c.tar.gz
rails-fc5c41e9424e49db77245de4d17031ebb3e96b5c.tar.bz2
rails-fc5c41e9424e49db77245de4d17031ebb3e96b5c.zip
Merge pull request #6201 from whistlerbrk/master
Allow explicitly set content-type via head method when status code allows it according to the RFCs
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r--actionpack/lib/action_controller/metal/head.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/head.rb b/actionpack/lib/action_controller/metal/head.rb
index 5bdbde9ebb..2fcd933d32 100644
--- a/actionpack/lib/action_controller/metal/head.rb
+++ b/actionpack/lib/action_controller/metal/head.rb
@@ -20,6 +20,7 @@ module ActionController
options, status = status, nil if status.is_a?(Hash)
status ||= options.delete(:status) || :ok
location = options.delete(:location)
+ content_type = options.delete(:content_type)
options.each do |key, value|
headers[key.to_s.dasherize.split('-').each { |v| v[0] = v[0].chr.upcase }.join('-')] = value.to_s
@@ -29,7 +30,7 @@ module ActionController
self.location = url_for(location) if location
if include_content_headers?(self.status)
- self.content_type = Mime[formats.first] if formats
+ self.content_type = content_type || (Mime[formats.first] if formats)
else
headers.delete('Content-Type')
headers.delete('Content-Length')