1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

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
This commit is contained in:
Rick Olson 2007-02-05 05:39:23 +00:00
parent 38e5d21bc4
commit 2782c37bdf
2 changed files with 6 additions and 5 deletions

View file

@ -1,5 +1,7 @@
*SVN*
# Fix #render_file so that TemplateError is called with the correct params and you don't get the WSOD. [Rick]
* Fix issue with deprecation messing up #template_root= usage. Add #prepend_view_path and #append_view_path to allow modification of a copy of the
superclass' view_paths. [Rick]

View file

@ -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