diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-08-25 19:31:42 -0700 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2013-08-25 19:31:42 -0700 |
commit | e0fc5da35393c70d5ac61aaa96705f03195486fc (patch) | |
tree | b5fba23f5475f48692b6298863217669c0f0a624 | |
parent | adf6e30e3ad448c1edf2878255922a3faaa77c99 (diff) | |
parent | 424a5a7d46176eaa9617ad4fdc99d8c2be53b186 (diff) | |
download | rails-e0fc5da35393c70d5ac61aaa96705f03195486fc.tar.gz rails-e0fc5da35393c70d5ac61aaa96705f03195486fc.tar.bz2 rails-e0fc5da35393c70d5ac61aaa96705f03195486fc.zip |
Merge pull request #12006 from kassio/11605-render-with-context-format
Render with context format
12 files changed, 16 insertions, 31 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index d29d2747d3..ce6aec7a50 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,5 +1,10 @@ ## unreleased ## +* Fix to render partial by context(#11605). + + *Kassio Borges* + + * Fix `ActionDispatch::Assertions::ResponseAssertions#assert_redirected_to` does not show user-supplied message. diff --git a/actionpack/lib/action_view/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb index 1a656ed37f..9f617a9a53 100644 --- a/actionpack/lib/action_view/lookup_context.rb +++ b/actionpack/lib/action_view/lookup_context.rb @@ -103,7 +103,7 @@ module ActionView # Helpers related to template lookup using the lookup context information. module ViewPaths - attr_reader :view_paths, :html_fallback_for_js + attr_reader :view_paths # Whenever setting view paths, makes a copy so we can manipulate then in # instance objects as we wish. @@ -200,10 +200,7 @@ module ActionView def formats=(values) if values values.concat(default_formats) if values.delete "*/*" - if values == [:js] - values << :html - @html_fallback_for_js = true - end + values << :html if values == [:js] end super(values) end diff --git a/actionpack/lib/action_view/renderer/abstract_renderer.rb b/actionpack/lib/action_view/renderer/abstract_renderer.rb index b79b89e142..0b5d3785d4 100644 --- a/actionpack/lib/action_view/renderer/abstract_renderer.rb +++ b/actionpack/lib/action_view/renderer/abstract_renderer.rb @@ -37,11 +37,5 @@ module ActionView def instrument(name, options={}) ActiveSupport::Notifications.instrument("render_#{name}.action_view", options){ yield } end - - def prepend_formats(formats) - formats = Array(formats) - return if formats.empty? || @lookup_context.html_fallback_for_js - @lookup_context.formats = formats | @lookup_context.formats - end end end diff --git a/actionpack/lib/action_view/renderer/partial_renderer.rb b/actionpack/lib/action_view/renderer/partial_renderer.rb index f3300e470b..71fa05ab3e 100644 --- a/actionpack/lib/action_view/renderer/partial_renderer.rb +++ b/actionpack/lib/action_view/renderer/partial_renderer.rb @@ -281,8 +281,6 @@ module ActionView @block = block @details = extract_details(options) - prepend_formats(options[:formats]) - if String === partial @object = options[:object] @path = partial diff --git a/actionpack/lib/action_view/renderer/template_renderer.rb b/actionpack/lib/action_view/renderer/template_renderer.rb index d15e75637a..a27d5dd1b1 100644 --- a/actionpack/lib/action_view/renderer/template_renderer.rb +++ b/actionpack/lib/action_view/renderer/template_renderer.rb @@ -10,10 +10,9 @@ module ActionView template = determine_template(options) context = @lookup_context - prepend_formats(template.formats) - unless context.rendered_format - context.rendered_format = template.formats.first || formats.last + context.formats = template.formats unless template.formats.empty? + context.rendered_format = context.formats.first end render_template(template, options[:layout], options[:locals]) diff --git a/actionpack/test/fixtures/test/_changing_priority.html.erb b/actionpack/test/fixtures/test/_changing_priority.html.erb deleted file mode 100644 index 3225efc49a..0000000000 --- a/actionpack/test/fixtures/test/_changing_priority.html.erb +++ /dev/null @@ -1 +0,0 @@ -HTML
\ No newline at end of file diff --git a/actionpack/test/fixtures/test/_changing_priority.json.erb b/actionpack/test/fixtures/test/_changing_priority.json.erb deleted file mode 100644 index 7fa41dce66..0000000000 --- a/actionpack/test/fixtures/test/_changing_priority.json.erb +++ /dev/null @@ -1 +0,0 @@ -JSON
\ No newline at end of file diff --git a/actionpack/test/fixtures/test/_first_json_partial.json.erb b/actionpack/test/fixtures/test/_first_json_partial.json.erb deleted file mode 100644 index 790ee896db..0000000000 --- a/actionpack/test/fixtures/test/_first_json_partial.json.erb +++ /dev/null @@ -1 +0,0 @@ -<%= render :partial => "test/second_json_partial" %>
\ No newline at end of file diff --git a/actionpack/test/fixtures/test/_json_change_priority.json.erb b/actionpack/test/fixtures/test/_json_change_priority.json.erb deleted file mode 100644 index e69de29bb2..0000000000 --- a/actionpack/test/fixtures/test/_json_change_priority.json.erb +++ /dev/null diff --git a/actionpack/test/fixtures/test/_second_json_partial.json.erb b/actionpack/test/fixtures/test/_second_json_partial.json.erb deleted file mode 100644 index 5ebb7f1afd..0000000000 --- a/actionpack/test/fixtures/test/_second_json_partial.json.erb +++ /dev/null @@ -1 +0,0 @@ -Third level
\ No newline at end of file diff --git a/actionpack/test/fixtures/test/html_template.html.erb b/actionpack/test/fixtures/test/html_template.html.erb deleted file mode 100644 index 1b483357bd..0000000000 --- a/actionpack/test/fixtures/test/html_template.html.erb +++ /dev/null @@ -1 +0,0 @@ -<%= render :partial => "test/first_json_partial", :formats => :json %>
\ No newline at end of file diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index 72f494c811..03f3a34681 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -54,16 +54,6 @@ module RenderTestCases assert_equal "Hello world", @view.render(:template => "test/one", :formats => [:html]) end - def test_render_partial_implicitly_use_format_of_the_rendered_partial - @view.lookup_context.formats = [:html] - assert_equal "Third level", @view.render(:template => "test/html_template") - end - - def test_render_partial_use_last_prepended_format_for_partials_with_the_same_names - @view.lookup_context.formats = [:html] - assert_equal "\nHTML Template, but JSON partial", @view.render(:template => "test/change_priority") - end - def test_render_template_with_a_missing_partial_of_another_format @view.lookup_context.formats = [:html] assert_raise ActionView::Template::Error, "Missing partial /missing with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder]}" do @@ -71,6 +61,13 @@ module RenderTestCases end end + def test_render_using_context_format_as_default + @view.lookup_context.formats = [:html] + assert_equal "partial html", @view.render('test/partial') + assert_equal "partial js", @view.render(:partial => 'test/partial', :formats => :js) + assert_equal "partial html", @view.render('test/partial') + end + def test_render_file_with_locale assert_equal "<h1>Kein Kommentar</h1>", @view.render(:file => "comments/empty", :locale => [:de]) assert_equal "<h1>Kein Kommentar</h1>", @view.render(:file => "comments/empty", :locale => :de) |