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" %> =>
#
Title simply can't be empty (or it won't work)
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 %(2 errors prohibited this post from being saved
There were problems with the following fields:
- Author name can't be empty
- User email can't be empty
), error_messages_for("post", "user")