diff options
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/CHANGELOG | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/active_record_helper.rb | 4 | ||||
-rw-r--r-- | actionpack/test/template/active_record_helper_test.rb | 4 |
3 files changed, 9 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 4cdd6c555f..ec0216f565 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* allow nil objects for error_messages_for [Michael Koziarski] + * Refactor human_size to exclude decimal place if it is zero. [Marcel Molina Jr.] * Update to Prototype 1.5.0_pre0 [Sam Stephenson] diff --git a/actionpack/lib/action_view/helpers/active_record_helper.rb b/actionpack/lib/action_view/helpers/active_record_helper.rb index 41d63fbc9a..dccae1db41 100644 --- a/actionpack/lib/action_view/helpers/active_record_helper.rb +++ b/actionpack/lib/action_view/helpers/active_record_helper.rb @@ -103,7 +103,7 @@ module ActionView def error_messages_for(object_name, options = {}) options = options.symbolize_keys object = instance_variable_get("@#{object_name}") - unless object.errors.empty? + if object && !object.errors.empty? content_tag("div", content_tag( options[:header_tag] || "h2", @@ -113,6 +113,8 @@ module ActionView content_tag("ul", object.errors.full_messages.collect { |msg| content_tag("li", msg) }), "id" => options[:id] || "errorExplanation", "class" => options[:class] || "errorExplanation" ) + else + "" end end diff --git a/actionpack/test/template/active_record_helper_test.rb b/actionpack/test/template/active_record_helper_test.rb index acff1b5e40..e153e630ab 100644 --- a/actionpack/test/template/active_record_helper_test.rb +++ b/actionpack/test/template/active_record_helper_test.rb @@ -119,6 +119,10 @@ class ActiveRecordHelperTest < Test::Unit::TestCase assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post") assert_equal %(<div class="errorDeathByClass" id="errorDeathById"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>), error_messages_for("post", :class => "errorDeathByClass", :id => "errorDeathById", :header_tag => "h1") end + + def test_error_messages_for_handles_nil + assert_equal "", error_messages_for("notthere") + end def test_form_with_string_multipart assert_dom_equal( |