From 209fb5190b1415633fcd42f7617ff5001669dd27 Mon Sep 17 00:00:00 2001 From: wycats Date: Sun, 4 Apr 2010 19:49:12 -0700 Subject: render_to_string should have the identical signature as render --- actionpack/lib/abstract_controller/rendering.rb | 17 ++++++++--------- actionpack/test/abstract/abstract_controller_test.rb | 10 ++++++++++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index b251bd6405..98c8c5fa67 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -89,9 +89,16 @@ module AbstractController # Normalize arguments, options and then delegates render_to_body and # sticks the result in self.response_body. def render(*args, &block) + self.response_body = render_to_string(*args, &block) + end + + # Raw rendering of a template to a string. Just convert the results of + # render_to_body into a String. + # :api: plugin + def render_to_string(*args, &block) options = _normalize_args(*args, &block) _normalize_options(options) - self.response_body = render_to_body(options) + render_to_body(options) end # Raw rendering of a template to a Rack-compatible body. @@ -101,14 +108,6 @@ module AbstractController _render_template(options) end - # Raw rendering of a template to a string. Just convert the results of - # render_to_body into a String. - # :api: plugin - def render_to_string(options={}) - _normalize_options(options) - render_to_body(options) - end - # Find and renders a template based on the options given. # :api: private def _render_template(options) #:nodoc: diff --git a/actionpack/test/abstract/abstract_controller_test.rb b/actionpack/test/abstract/abstract_controller_test.rb index f70d497481..5a0a2aef10 100644 --- a/actionpack/test/abstract/abstract_controller_test.rb +++ b/actionpack/test/abstract/abstract_controller_test.rb @@ -49,6 +49,11 @@ module AbstractController render "index.erb" end + + def index_to_string + self.response_body = render_to_string "index.erb" + end + def action_with_ivars @my_ivar = "Hello" render "action_with_ivars.erb" @@ -77,6 +82,11 @@ module AbstractController assert_equal "Hello from index.erb", @controller.response_body end + test "render_to_string works with a String as an argument" do + @controller.process(:index_to_string) + assert_equal "Hello from index.erb", @controller.response_body + end + test "rendering passes ivars to the view" do @controller.process(:action_with_ivars) assert_equal "Hello from index_with_ivars.erb", @controller.response_body -- cgit v1.2.3