mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
catch possible WSOD when trying to render a missing partial. Closes #8454 [Catfish]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6826 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
da7f9f516a
commit
4b9e67c5b9
3 changed files with 16 additions and 0 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* catch possible WSOD when trying to render a missing partial. Closes #8454 [Catfish]
|
||||
|
||||
* Rewind request body after reading it, if possible. #8438 [s450r1]
|
||||
|
||||
* Resource namespaces are inherited by their has_many subresources. #8280 [marclove, ggarside]
|
||||
|
|
|
@ -278,6 +278,10 @@ module ActionView #:nodoc:
|
|||
|
||||
template_source = nil # Don't read the source until we know that it is required
|
||||
|
||||
if template_file_name.blank?
|
||||
raise ActionViewError, "Couldn't find template file for #{template_path} in #{@view_paths.inspect}"
|
||||
end
|
||||
|
||||
begin
|
||||
render_template(template_extension, template_source, template_file_name, local_assigns)
|
||||
rescue Exception => e
|
||||
|
|
|
@ -163,6 +163,10 @@ class NewRenderTestController < ActionController::Base
|
|||
render :partial => "customer"
|
||||
end
|
||||
|
||||
def missing_partial
|
||||
render :partial => 'thisFileIsntHere'
|
||||
end
|
||||
|
||||
def hello_in_a_string
|
||||
@customers = [ Customer.new("david"), Customer.new("mary") ]
|
||||
render :text => "How's there? #{render_to_string("test/list")}"
|
||||
|
@ -682,6 +686,12 @@ EOS
|
|||
assert_equal "Hello: Marcel", @response.body
|
||||
end
|
||||
|
||||
def test_render_missing_partial_template
|
||||
assert_raises(ActionView::ActionViewError) do
|
||||
get :missing_partial
|
||||
end
|
||||
end
|
||||
|
||||
def test_render_text_with_assigns
|
||||
get :render_text_with_assigns
|
||||
assert_equal "world", assigns["hello"]
|
||||
|
|
Loading…
Reference in a new issue