Update ActiveRecord::AttributeMethods#attribute_present? to return false for empty strings #5316

Merged
merged 1 commit into from Mar 7, 2012
Jump to file or symbol
Failed to load files and symbols.
+4 −1
Split
@@ -189,7 +189,7 @@ def attribute_for_inspect(attr_name)
# nil nor empty? (the latter only applies to objects that respond to empty?, most notably Strings).
def attribute_present?(attribute)
value = read_attribute(attribute)
- !value.nil? || (value.respond_to?(:empty?) && !value.empty?)
+ !value.nil? && !(value.respond_to?(:empty?) && value.empty?)
end
# Returns the column object for the named attribute.
@@ -30,9 +30,12 @@ def test_attribute_present
t = Topic.new
t.title = "hello there!"
t.written_on = Time.now
+ t.author_name = ""
assert t.attribute_present?("title")
assert t.attribute_present?("written_on")
assert !t.attribute_present?("content")
+ assert !t.attribute_present?("author_name")
+
end
def test_attribute_present_with_booleans