Restore lookup formats to the previous value after searching for the failing view

This commit is contained in:
Santiago Pastorino
2012-02-21 14:55:34 -02:00
parent b1229685c4
commit 4eff6bc6df
2 changed files with 5 additions and 2 deletions

View File

@@ -164,10 +164,12 @@ module ActionView
pieces = @virtual_path.split("/")
name = pieces.pop
partial = !!name.sub!(/^_/, "")
lookup.formats = @formats
previous_formats, lookup.formats = lookup.formats, @formats
lookup.disable_cache do
lookup.find_template(name, [ pieces.join('/') ], partial, @locals)
end
ensure
lookup.formats = previous_formats
end
def inspect

View File

@@ -52,10 +52,11 @@ module RenderTestCases
end
def test_render_template_with_a_missing_partial_of_another_format
@view.lookup_context.freeze_formats([:html])
assert_raise ActionView::Template::Error, "Missing partial /missing with {:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder]}" do
@view.lookup_context.freeze_formats([:html])
@view.render(:template => "with_format", :formats => [:json])
end
assert_equal [:html], @view.lookup_context.formats
end
def test_render_file_with_locale