From b83efadb32fe55ba7a7d23d650a8adc1a351eab7 Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Tue, 5 Jun 2007 16:51:49 +0000 Subject: Assume html format when rendering partials in RJS. #8076 [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6950 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_view/helpers/prototype_helper.rb | 4 ++++ actionpack/test/controller/render_test.rb | 15 +++++++++++++++ actionpack/test/template/prototype_helper_test.rb | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 5601199b10..e155be9d46 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Assume html format when rendering partials in RJS. #8076 [Rick] + * Don't double-escape url_for in views. #8144 [Rich Collins, Josh Peek] * Allow JSON-style values for the :with option of observe_field. Closes #8557 [kommen] diff --git a/actionpack/lib/action_view/helpers/prototype_helper.rb b/actionpack/lib/action_view/helpers/prototype_helper.rb index 33e52bfa6e..d1f992486f 100644 --- a/actionpack/lib/action_view/helpers/prototype_helper.rb +++ b/actionpack/lib/action_view/helpers/prototype_helper.rb @@ -631,9 +631,13 @@ module ActionView end def render(*options_for_render) + old_format = @context && @context.template_format + @context.template_format = :html if @context Hash === options_for_render.first ? @context.render(*options_for_render) : options_for_render.first.to_s + ensure + @context.template_format = old_format if @context end def javascript_object_for(object) diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index 510d1a8765..8b4149dcb4 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -142,6 +142,16 @@ class TestController < ActionController::Base end end + def respond_to_partial_as_rjs + respond_to do |format| + format.js do + render :update do |page| + page.replace :foo, :partial => 'partial' + end + end + end + end + def rescue_action(e) raise end private @@ -388,6 +398,11 @@ class RenderTest < Test::Unit::TestCase assert_equal %(Element.replace("foo", "partial html");), @response.body end + def test_should_render_html_formatted_partial_with_rjs_and_js_format + xhr :get, :respond_to_partial_as_rjs + assert_equal %(Element.replace("foo", "partial html");), @response.body + end + def test_should_render_js_partial xhr :get, :partial, :format => 'js' assert_equal 'partial js', @response.body diff --git a/actionpack/test/template/prototype_helper_test.rb b/actionpack/test/template/prototype_helper_test.rb index b669d20b22..c08bf9c85e 100644 --- a/actionpack/test/template/prototype_helper_test.rb +++ b/actionpack/test/template/prototype_helper_test.rb @@ -15,6 +15,10 @@ class Author::Nested < Author; end module BaseTest + def self.included(base) + base.send :attr_accessor, :template_format + end + include ActionView::Helpers::JavaScriptHelper include ActionView::Helpers::PrototypeHelper include ActionView::Helpers::ScriptaculousHelper -- cgit v1.2.3