From c7d20785965d5f0877d0c13d0d9929f2fce50a8b Mon Sep 17 00:00:00 2001 From: Justin Mazzi Date: Sat, 5 Nov 2011 22:36:19 -0400 Subject: Update ActiveRecord#attribute_present? to work as documented "Returns true if the specified attribute has been set by the user or by a database load and is neither nil nor empty?" Fixes #1613 --- activerecord/lib/active_record/base.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 455b299270..feeebb7131 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -1771,7 +1771,8 @@ MSG # Returns true if the specified +attribute+ has been set by the user or by a database load and is neither # nil nor empty? (the latter only applies to objects that respond to empty?, most notably Strings). def attribute_present?(attribute) - !_read_attribute(attribute).blank? + value = _read_attribute(attribute) + !value.nil? || (value.respond_to?(:empty?) && !value.empty?) end # Returns the column object for the named attribute. -- cgit v1.2.3