mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #3535 from jmazzi/master
Update ActiveRecord#attribute_present? to work as documented
This commit is contained in:
commit
62512b9fb9
2 changed files with 20 additions and 1 deletions
|
@ -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.
|
||||
|
|
|
@ -35,6 +35,24 @@ class AttributeMethodsTest < ActiveRecord::TestCase
|
|||
assert !t.attribute_present?("content")
|
||||
end
|
||||
|
||||
def test_attribute_present_with_booleans
|
||||
b1 = Boolean.new
|
||||
b1.value = false
|
||||
assert b1.attribute_present?(:value)
|
||||
|
||||
b2 = Boolean.new
|
||||
b2.value = true
|
||||
assert b2.attribute_present?(:value)
|
||||
|
||||
b3 = Boolean.new
|
||||
assert !b3.attribute_present?(:value)
|
||||
|
||||
b4 = Boolean.new
|
||||
b4.value = false
|
||||
b4.save!
|
||||
assert Boolean.find(b4.id).attribute_present?(:value)
|
||||
end
|
||||
|
||||
def test_attribute_keys_on_new_instance
|
||||
t = Topic.new
|
||||
assert_equal nil, t.title, "The topics table has a title column, so it should be nil"
|
||||
|
|
Loading…
Reference in a new issue