diff options
author | brainopia <brainopia@evilmartians.com> | 2015-01-03 02:03:47 +0300 |
---|---|---|
committer | brainopia <brainopia@evilmartians.com> | 2015-01-03 02:03:47 +0300 |
commit | e8d6ba218ac019591f1d68f4f54d4243b606893c (patch) | |
tree | d46763f1864c43a1ea3cebccfc09204b19dd774c /activerecord | |
parent | 78dab2a8569408658542e462a957ea5a35aa4679 (diff) | |
download | rails-e8d6ba218ac019591f1d68f4f54d4243b606893c.tar.gz rails-e8d6ba218ac019591f1d68f4f54d4243b606893c.tar.bz2 rails-e8d6ba218ac019591f1d68f4f54d4243b606893c.zip |
Support datetime values in AR::Type::DateTime#type_cast_for_database
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/type/date_time.rb | 6 | ||||
-rw-r--r-- | activerecord/test/cases/date_time_test.rb | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/type/date_time.rb b/activerecord/lib/active_record/type/date_time.rb index 5f19608a33..0a737815bc 100644 --- a/activerecord/lib/active_record/type/date_time.rb +++ b/activerecord/lib/active_record/type/date_time.rb @@ -11,7 +11,11 @@ module ActiveRecord zone_conversion_method = ActiveRecord::Base.default_timezone == :utc ? :getutc : :getlocal if value.acts_like?(:time) - value.send(zone_conversion_method) + if value.respond_to?(zone_conversion_method) + value.send(zone_conversion_method) + else + value + end else super end diff --git a/activerecord/test/cases/date_time_test.rb b/activerecord/test/cases/date_time_test.rb index c2ec92c40d..330232cee2 100644 --- a/activerecord/test/cases/date_time_test.rb +++ b/activerecord/test/cases/date_time_test.rb @@ -50,4 +50,12 @@ class DateTimeTest < ActiveRecord::TestCase topic.bonus_time = '' assert_nil topic.bonus_time end + + def test_assign_in_local_timezone + now = DateTime.now + with_timezone_config default: :local do + task = Task.new starting: now + assert now, task.starting + end + end end |