diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-02 09:09:02 -0800 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-12-02 09:09:02 -0800 |
commit | ea535261bc262c4cf9ed6017abb2bbc9d4288903 (patch) | |
tree | d15288640a14018595f11f19dd133c5de8c3c5a9 /actionpack | |
parent | 77306550737b2dd7cecf628c50951b2d75ef2e31 (diff) | |
parent | 60b525c751a2407712d8ea1854b9b31f68a31406 (diff) | |
download | rails-ea535261bc262c4cf9ed6017abb2bbc9d4288903.tar.gz rails-ea535261bc262c4cf9ed6017abb2bbc9d4288903.tar.bz2 rails-ea535261bc262c4cf9ed6017abb2bbc9d4288903.zip |
Merge pull request #8402 from senny/8376_descriptive_error_message_for_partial_layout_true
More descriptive error when rendering a partial with `:layout => true`
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/CHANGELOG.md | 10 | ||||
-rw-r--r-- | actionpack/lib/action_view/renderer/partial_renderer.rb | 2 | ||||
-rw-r--r-- | actionpack/test/template/render_test.rb | 5 |
3 files changed, 16 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index e5bd21ea7b..a5fd7b5f25 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,5 +1,15 @@ ## Rails 4.0.0 (unreleased) ## +* More descriptive error messages when calling `render :partial` with + an invalid `:layout` argument. + #8376 + + render :partial => 'partial', :layout => true + + # results in ActionView::MissingTemplate: Missing partial /true + + *Yves Senn* + * Sweepers was extracted from Action Controller as `rails-observers` gem. *Rafael Mendonça França* diff --git a/actionpack/lib/action_view/renderer/partial_renderer.rb b/actionpack/lib/action_view/renderer/partial_renderer.rb index f5fdf766ad..8fb9b6ff18 100644 --- a/actionpack/lib/action_view/renderer/partial_renderer.rb +++ b/actionpack/lib/action_view/renderer/partial_renderer.rb @@ -293,7 +293,7 @@ module ActionView object, as = @object, @variable if !block && (layout = @options[:layout]) - layout = find_template(layout, @template_keys) + layout = find_template(layout.to_s, @template_keys) end object ||= locals[as] diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb index 4e6a676fc6..9fb26e32b1 100644 --- a/actionpack/test/template/render_test.rb +++ b/actionpack/test/template/render_test.rb @@ -437,6 +437,11 @@ module RenderTestCases @view.render(:partial => 'test/partial_with_layout_block_content', :layout => 'test/layout_for_partial', :locals => { :name => 'Foo!'}) end + def test_render_partial_with_layout_raises_descriptive_error + e = assert_raises(ActionView::MissingTemplate) { @view.render(partial: 'test/partial', layout: true) } + assert_match "Missing partial /true with", e.message + end + def test_render_with_nested_layout assert_equal %(<title>title</title>\n\n<div id="column">column</div>\n<div id="content">content</div>\n), @view.render(:file => "test/nested_layout", :layout => "layouts/yield") |