aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2015-01-02 20:59:19 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2015-01-02 20:59:19 -0300
commit540a81852618ad70695fd2902c4a8a16b0be3cac (patch)
treeec8172cb3e50e37ca1a45e4e5856190ecf5ca4a9
parent41740be7c43c3454278c9ecc65772922ec718926 (diff)
parente8d6ba218ac019591f1d68f4f54d4243b606893c (diff)
downloadrails-540a81852618ad70695fd2902c4a8a16b0be3cac.tar.gz
rails-540a81852618ad70695fd2902c4a8a16b0be3cac.tar.bz2
rails-540a81852618ad70695fd2902c4a8a16b0be3cac.zip
Merge pull request #18307 from brainopia/datetime_regression
Fully support datetime values in AR::Type::DateTime#type_cast_for_database
-rw-r--r--activerecord/lib/active_record/type/date_time.rb6
-rw-r--r--activerecord/test/cases/date_time_test.rb8
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