diff options
-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 |
2 files changed, 7 insertions, 1 deletions
diff --git a/actionpack/lib/action_view/helpers/active_record_helper.rb b/actionpack/lib/action_view/helpers/active_record_helper.rb index a001ae5e65..fff22d2688 100644 --- a/actionpack/lib/action_view/helpers/active_record_helper.rb +++ b/actionpack/lib/action_view/helpers/active_record_helper.rb @@ -85,8 +85,10 @@ module ActionView # <%= error_message_on "post", "title", "Title simply ", " (or it won't work)", "inputError" %> => # <div class="inputError">Title simply can't be empty (or it won't work)</div> def error_message_on(object, method, prepend_text = "", append_text = "", css_class = "formError") - if errors = instance_variable_get("@#{object}").errors.on(method) + if object = instance_variable_get("@#{object}") && errors = object.errors.on(method) content_tag("div", "#{prepend_text}#{errors.is_a?(Array) ? errors.first : errors}#{append_text}", :class => css_class) + else + '' end end diff --git a/actionpack/test/template/active_record_helper_test.rb b/actionpack/test/template/active_record_helper_test.rb index 8b6a7abd6f..c4e5ca66c2 100644 --- a/actionpack/test/template/active_record_helper_test.rb +++ b/actionpack/test/template/active_record_helper_test.rb @@ -170,6 +170,10 @@ class ActiveRecordHelperTest < Test::Unit::TestCase def test_error_messages_for_handles_nil assert_equal "", error_messages_for("notthere") end + + def test_error_message_on_handles_nil + assert_equal "", error_message_on("notthere", "notthere") + end def test_error_messages_for_many_objects assert_dom_equal %(<div class="errorExplanation" id="errorExplanation"><h2>2 errors 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><li>User email can't be empty</li></ul></div>), error_messages_for("post", "user") |