From eb73dfc0677cb5b3a0f559020fe5d7df556056b4 Mon Sep 17 00:00:00 2001 From: Sayan Chakraborty Date: Sat, 1 Jul 2017 19:18:18 +0530 Subject: Return correct date in ActiveModel for time to date conversions time.to_date conversion happens considering leap years so a conversion of "Day.new({'day(1i)'=>'1', 'day(2i)'=>'1', 'day(3i)'=>'1'})" results in saving the date as Mon, 03 Jan 0001 which might seem weird on the user level, hence falling back to parsing on string level resolves this data mismatch Fixes #28521 --- activemodel/CHANGELOG.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'activemodel/CHANGELOG.md') diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md index 2dfde11707..909fbe512b 100644 --- a/activemodel/CHANGELOG.md +++ b/activemodel/CHANGELOG.md @@ -1,6 +1,21 @@ ## Rails 5.2.0.beta2 (November 28, 2017) ## -* No changes. +* Return correct date while converting parameters in `value_from_multiparameter_assignment` + for `ActiveModel::Type::Date` + + Before: + + Day.new({"day(1i)"=>"1", "day(2i)"=>"1", "day(3i)"=>"1"}) + => # + + After: + + Day.new({"day(1i)"=>"1", "day(2i)"=>"1", "day(3i)"=>"1"}) + => # + + Fixes #28521 + + *Sayan Chakraborty* ## Rails 5.2.0.beta1 (November 27, 2017) ## -- cgit v1.2.3