diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb index 3b0f19475e8ee60a54e2dc2a6594572c35758b7e..a1b210a54ff3af27b943b74f74c50c7ea542839e 100644 --- a/actionpack/lib/action_controller/base.rb +++ b/actionpack/lib/action_controller/base.rb @@ -897,7 +897,7 @@ def render(options = nil, extra_options = {}, &block) #:doc: render_for_text(@template.render(options), options[:status]) elsif action_name = options[:action] - render_for_file(default_template_name(action_name.to_s), options[:status], nil, options[:locals] || {}) + render_for_file(default_template_name(action_name.to_s), options[:status]) elsif xml = options[:xml] response.content_type ||= Mime::XML diff --git a/actionpack/lib/action_controller/layout.rb b/actionpack/lib/action_controller/layout.rb index 8b6febe254c7090ec971e850935e1885678beae6..fd743ced3833e0c3b23849ebbc92e1a73aa050e5 100644 --- a/actionpack/lib/action_controller/layout.rb +++ b/actionpack/lib/action_controller/layout.rb @@ -245,7 +245,7 @@ def render_with_a_layout(options = nil, extra_options = {}, &block) #:nodoc: template_with_options = options.is_a?(Hash) if (layout = pick_layout(template_with_options, options)) && apply_layout?(template_with_options, options) - options = options.merge :layout => false if template_with_options + options.delete(:layout) if template_with_options logger.info("Rendering template within #{layout}") if logger content_for_layout = render_with_no_layout(options, extra_options, &block) diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index e383fda384f14511f45920f61c0cf6f88bd147ec..8d15aa2da432a17dde5de5aa5df2224574b6fce2 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -371,6 +371,12 @@ def update_page_with_instance_variables end end + def update_page_with_view_method + render :update do |page| + page.replace_html 'person', pluralize(2, 'person') + end + end + def action_talk_to_layout # Action template sets variable that's picked up by layout end @@ -1022,6 +1028,13 @@ def test_update_page_with_instance_variables assert_match /\$37/, @response.body end + def test_update_page_with_view_method + get :update_page_with_view_method + assert_template nil + assert_equal 'text/javascript; charset=utf-8', @response.headers['type'] + assert_match /2 people/, @response.body + end + def test_yield_content_for assert_not_deprecated { get :yield_content_for } assert_equal "Putting stuff in the title!\n\nGreat stuff!\n", @response.body