Permalink
Browse files

force datetime attributes to be changed

backport ddb5d2f to 3-2-stable
  • Loading branch information...
lest committed Mar 27, 2012
1 parent bd8a970 commit fdcfc7521f0490aed74f372b90ef5e982b0f7e7a
@@ -43,6 +43,7 @@ def #{attr_name}=(original_time)
end
time = time.in_time_zone rescue nil if time
write_attribute(:#{attr_name}, original_time)
+ #{attr_name}_will_change!
@attributes_cache["#{attr_name}"] = time
end
EOV
@@ -620,6 +620,20 @@ def test_setting_time_zone_aware_attribute_with_string
end
end
+ def test_time_zone_aware_attribute_saved
+ old_default, ActiveRecord::Base.default_timezone = ActiveRecord::Base.default_timezone, :utc
+
+ in_time_zone 1 do
+ record = @target.create(:written_on => '2012-02-20 10:00')
+
+ record.written_on = '2012-02-20 09:00'
+ record.save
+ assert_equal Time.zone.local(2012, 02, 20, 9), record.reload.written_on
+ end
+ ensure
+ ActiveRecord::Base.default_timezone = old_default
+ end
+
def test_setting_time_zone_aware_attribute_to_blank_string_returns_nil
in_time_zone "Pacific Time (US & Canada)" do
record = @target.new

0 comments on commit fdcfc75

Please sign in to comment.