diff options
author | Koichi ITO <koic.ito@gmail.com> | 2017-09-01 13:58:00 +0900 |
---|---|---|
committer | Koichi ITO <koic.ito@gmail.com> | 2017-09-02 13:12:59 +0900 |
commit | 3ee59eec2ffd07d1e4b12ef047495fb9d1ee13ce (patch) | |
tree | b3bb9f6dc8e85671b567065a99a35831392db0d1 /actionpack | |
parent | c2b2a8c74fcd2e32996641503ed029c8f7484b00 (diff) | |
download | rails-3ee59eec2ffd07d1e4b12ef047495fb9d1ee13ce.tar.gz rails-3ee59eec2ffd07d1e4b12ef047495fb9d1ee13ce.tar.bz2 rails-3ee59eec2ffd07d1e4b12ef047495fb9d1ee13ce.zip |
Fix `can't modify frozen String` error in AC::Rendering
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_controller/metal/rendering.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/render_test.rb | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/metal/rendering.rb b/actionpack/lib/action_controller/metal/rendering.rb index d32eabf9ba..dcb48be80a 100644 --- a/actionpack/lib/action_controller/metal/rendering.rb +++ b/actionpack/lib/action_controller/metal/rendering.rb @@ -42,7 +42,7 @@ module ActionController def render_to_string(*) result = super if result.respond_to?(:each) - string = "" + string = "".dup result.each { |r| string << r } string else diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index 3619afc513..1ca668b9b1 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -606,6 +606,18 @@ class MetalRenderTest < ActionController::TestCase end end +class ActionControllerRenderTest < ActionController::TestCase + class MinimalController < ActionController::Metal + include AbstractController::Rendering + include ActionController::Rendering + end + + def test_direct_render_to_string_with_body + mc = MinimalController.new + assert_equal "Hello world!", mc.render_to_string(body: ["Hello world!"]) + end +end + class ActionControllerBaseRenderTest < ActionController::TestCase def test_direct_render_to_string ac = ActionController::Base.new() |