From 2782c37bdfbe22fcbc1feea7603bb2413beb6f22 Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Mon, 5 Feb 2007 05:39:23 +0000 Subject: Fix #render_file so that TemplateError is called with the correct params and you don't get the WSOD. [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6130 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_view/base.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index d8bb6add34..4ef36a8812 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -245,10 +245,9 @@ module ActionView #:nodoc: # is made available as local variables. def render_file(template_path, use_full_path = true, local_assigns = {}) #:nodoc: @first_render ||= template_path - + template_path_without_extension, template_extension = path_and_extension(template_path) + if use_full_path - template_path_without_extension, template_extension = path_and_extension(template_path) - if template_extension template_file_name = full_template_path(template_path_without_extension, template_extension) else @@ -257,7 +256,6 @@ module ActionView #:nodoc: end else template_file_name = template_path - template_extension = template_path.split('.').last end template_source = nil # Don't read the source until we know that it is required @@ -269,7 +267,7 @@ module ActionView #:nodoc: e.sub_template_of(template_file_name) raise e else - raise TemplateError.new(find_base_path_for(template_file_name), template_file_name, @assigns, template_source, e) + raise TemplateError.new(find_base_path_for("#{template_path_without_extension}.#{template_extension}"), template_file_name, @assigns, template_source, e) end end end @@ -395,6 +393,7 @@ module ActionView #:nodoc: @@cache_template_extensions && @@cached_template_extension[template_path] end + # Returns the view path that contains the given relative template path. def find_base_path_for(template_file_name) @view_paths.find { |p| File.file?(File.join(p, template_file_name)) } end -- cgit v1.2.3