aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authoreileencodes <eileencodes@gmail.com>2016-01-26 19:15:09 -0500
committereileencodes <eileencodes@gmail.com>2016-01-30 09:42:59 -0500
commitc4d85dfbc71043e2a746acd310e32f4f04db801a (patch)
tree161068d34bce60413e1cf045080ebd9a02ce45b0 /actionpack/lib
parent6162c49e40582bf058a6bb82ccc0cfb8f92332b6 (diff)
downloadrails-c4d85dfbc71043e2a746acd310e32f4f04db801a.tar.gz
rails-c4d85dfbc71043e2a746acd310e32f4f04db801a.tar.bz2
rails-c4d85dfbc71043e2a746acd310e32f4f04db801a.zip
Handle response_body= when body is nil
There are some cases when the `body` in `response_body=` can be set to nil. One of those cases is in `actionpack-action_caching` which I found while upgrading it for Rails 5. It's not possible to run `body.each` on a `nil` body so we have to return after we run `response.reset_body!`.
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_controller/metal.rb1
1 files changed, 1 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal.rb b/actionpack/lib/action_controller/metal.rb
index f6a93a8940..1641d01c30 100644
--- a/actionpack/lib/action_controller/metal.rb
+++ b/actionpack/lib/action_controller/metal.rb
@@ -174,6 +174,7 @@ module ActionController
def response_body=(body)
body = [body] unless body.nil? || body.respond_to?(:each)
response.reset_body!
+ return unless body
body.each { |part|
next if part.empty?
response.write part