diff options
author | José Valim <jose.valim@gmail.com> | 2012-03-27 00:38:31 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2012-03-27 00:38:31 -0700 |
commit | e31ec4700b9e1ca4726cff46fd68442fd6364b7b (patch) | |
tree | 28e94d43197fa0e4f18368ad5d17f8b0820232c4 | |
parent | 3eb5be67b14e347951eea2dd13cd6f4a8aaaa38c (diff) | |
parent | 449a4fc0957748bca3bddf6a15e4d2ae72e2898f (diff) | |
download | rails-e31ec4700b9e1ca4726cff46fd68442fd6364b7b.tar.gz rails-e31ec4700b9e1ca4726cff46fd68442fd6364b7b.tar.bz2 rails-e31ec4700b9e1ca4726cff46fd68442fd6364b7b.zip |
Merge pull request #5603 from drogus/fix-rendered-format-for-render-partial
Fix rendered format for render partial
-rw-r--r-- | actionpack/lib/action_view/renderer/partial_renderer.rb | 10 | ||||
-rw-r--r-- | actionpack/test/controller/render_test.rb | 13 | ||||
-rw-r--r-- | actionpack/test/fixtures/test/_partial_html_erb.html.erb | 1 |
3 files changed, 22 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/renderer/partial_renderer.rb b/actionpack/lib/action_view/renderer/partial_renderer.rb index 17aa85555c..25c41f042b 100644 --- a/actionpack/lib/action_view/renderer/partial_renderer.rb +++ b/actionpack/lib/action_view/renderer/partial_renderer.rb @@ -221,6 +221,14 @@ module ActionView setup(context, options, block) identifier = (@template = find_partial) ? @template.identifier : @path + @lookup_context.rendered_format ||= begin + if @template && @template.formats.present? + @template.formats.first + else + formats.first + end + end + if @collection instrument(:collection, :identifier => identifier || "collection", :count => @collection.size) do render_collection @@ -273,8 +281,6 @@ module ActionView @block = block @details = extract_details(options) - @lookup_context.rendered_format ||= formats.first - if String === partial @object = options[:object] @path = partial diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index 3cc8a9ddf3..a81c9a420a 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -543,6 +543,10 @@ class TestController < ActionController::Base render :partial => 'partial' end + def partial_html_erb + render :partial => 'partial_html_erb' + end + def render_to_string_with_partial @partial_only = render_to_string :partial => "partial_only" @partial_with_locals = render_to_string :partial => "customer", :locals => { :customer => Customer.new("david") } @@ -1267,6 +1271,15 @@ class RenderTest < ActionController::TestCase assert_equal "text/html", @response.content_type end + def test_render_html_formatted_partial_even_with_other_mime_time_in_accept + @request.accept = "text/javascript, text/html" + + get :partial_html_erb + + assert_equal "partial.html.erb", @response.body.strip + assert_equal "text/html", @response.content_type + end + def test_should_render_html_partial_with_formats get :partial_formats_html assert_equal "partial html", @response.body diff --git a/actionpack/test/fixtures/test/_partial_html_erb.html.erb b/actionpack/test/fixtures/test/_partial_html_erb.html.erb new file mode 100644 index 0000000000..4b54875782 --- /dev/null +++ b/actionpack/test/fixtures/test/_partial_html_erb.html.erb @@ -0,0 +1 @@ +<%= "partial.html.erb" %> |