aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Olson <technoweenie@gmail.com>2007-06-05 16:51:49 +0000
committerRick Olson <technoweenie@gmail.com>2007-06-05 16:51:49 +0000
commitb83efadb32fe55ba7a7d23d650a8adc1a351eab7 (patch)
treea92fd4097bcbf43479ce0e3ab196be4c6398371b
parented1ed9ed97f7d30ba8221079365634aa9c4bf24c (diff)
downloadrails-b83efadb32fe55ba7a7d23d650a8adc1a351eab7.tar.gz
rails-b83efadb32fe55ba7a7d23d650a8adc1a351eab7.tar.bz2
rails-b83efadb32fe55ba7a7d23d650a8adc1a351eab7.zip
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
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_view/helpers/prototype_helper.rb4
-rw-r--r--actionpack/test/controller/render_test.rb15
-rw-r--r--actionpack/test/template/prototype_helper_test.rb4
4 files changed, 25 insertions, 0 deletions
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