Skip to content

Commit 0a45950

Browse files
authored
Merge pull request rails#25565 from kamipo/fix_serialize_for_date_type
Backport rails#25364 to 4-2-stable
2 parents 09fc6ed + 226e1a3 commit 0a45950

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

activerecord/lib/active_record/type/date.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ def klass
99
::Date
1010
end
1111

12+
def type_cast_for_database(value)
13+
type_cast(value)
14+
end
15+
1216
def type_cast_for_schema(value)
1317
"'#{value.to_s(:db)}'"
1418
end

activerecord/test/cases/adapters/sqlite3/quoting_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def test_type_cast_string
7171
assert_equal '10.1', @conn.type_cast('10.1', c)
7272

7373
c = Column.new(nil, 1, Type::Date.new)
74-
assert_equal '10.1', @conn.type_cast('10.1', c)
74+
assert_equal '2016-05-11', @conn.type_cast('2016-05-11 19:00:00', c)
7575
end
7676

7777
def test_type_cast_bigdecimal

activerecord/test/cases/invalid_date_test.rb renamed to activerecord/test/cases/date_test.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
require 'cases/helper'
22
require 'models/topic'
33

4-
class InvalidDateTest < ActiveRecord::TestCase
4+
class DateTest < ActiveRecord::TestCase
5+
def test_date_with_time_value
6+
time_value = Time.new(2016, 05, 11, 19, 0, 0)
7+
topic = Topic.create(last_read: time_value)
8+
assert_equal topic, Topic.find_by(last_read: time_value)
9+
end
10+
11+
def test_date_with_string_value
12+
string_value = '2016-05-11 19:00:00'
13+
topic = Topic.create(last_read: string_value)
14+
assert_equal topic, Topic.find_by(last_read: string_value)
15+
end
16+
517
def test_assign_valid_dates
618
valid_dates = [[2007, 11, 30], [1993, 2, 28], [2008, 2, 29]]
719

0 commit comments

Comments
 (0)