The ActiveRecord.attribute_present? method reads the attribute then returns value.blank? This is not a correct implementation for boolean values. The blank? method returns true if a boolean value is false. Thus, attribute_present? incorrectly returns false for boolean values that are present but false.
The method's documentation reads:
# 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).
Note "and is neither nil nor empty?" So: are false values and string values are equally "present?"
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?"