Fix regression from [1631] that caused an attribute to be set to nil if it was assigned false

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1709 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Jamis Buck 2005-07-05 12:38:06 +00:00
parent 56fa64e995
commit 56c3d72aa7
2 changed files with 7 additions and 1 deletions

View File

@ -1200,7 +1200,7 @@ module ActiveRecord #:nodoc:
# Returns the value of attribute identified by <tt>attr_name</tt> after it has been type cast (for example,
# "2004-12-12" in a data column is cast to a date object, like Date.new(2004, 12, 12)).
def read_attribute(attr_name)
if value = @attributes[attr_name]
if !(value = @attributes[attr_name]).nil?
if column = column_for_attribute(attr_name)
if unserializable_attribute?(attr_name, column)
unserialize_attribute(attr_name)

View File

@ -180,6 +180,12 @@ class BasicsTest < Test::Unit::TestCase
assert_equal "Still another topic: part 2", topic.title
end
def test_read_attribute_when_false
topic = topics(:first)
topic.approved = false
assert_equal 0, topic.approved, "approved should be 0"
end
def test_preserving_date_objects
# SQL Server doesn't have a separate column type just for dates, so all are returned as time
if ActiveRecord::ConnectionAdapters.const_defined? :SQLServerAdapter