diff options
author | Andrew White <andrew.white@unboxed.co> | 2019-01-20 10:19:07 +0000 |
---|---|---|
committer | Andrew White <andrew.white@unboxed.co> | 2019-01-21 09:23:12 +0000 |
commit | ccdedeb9d5e1b2b74f03baef65aa8198b456e3b0 (patch) | |
tree | aa974b0826ded5979d79ba05e06793d3c27ccad8 /activemodel/CHANGELOG.md | |
parent | 31e118c39dc50a5ffeffe2b745a26b4c56651a35 (diff) | |
download | rails-ccdedeb9d5e1b2b74f03baef65aa8198b456e3b0.tar.gz rails-ccdedeb9d5e1b2b74f03baef65aa8198b456e3b0.tar.bz2 rails-ccdedeb9d5e1b2b74f03baef65aa8198b456e3b0.zip |
Fix year value when casting a multiparameter time hash
When assigning a hash to a time attribute that's missing a year
component (e.g. a `time_select` with `:ignore_date` set to `true`)
then the year defaults to 1970 instead of the expected 2000. This
results in the attribute changing as a result of the save.
Before:
event = Event.new(start_time: { 4 => 20, 5 => 30 })
event.start_time # => 1970-01-01 20:30:00 UTC
event.save
event.reload
event.start_time # => 2000-01-01 20:30:00 UTC
After:
event = Event.new(start_time: { 4 => 20, 5 => 30 })
event.start_time # => 2000-01-01 20:30:00 UTC
event.save
event.reload
event.start_time # => 2000-01-01 20:30:00 UTC
Diffstat (limited to 'activemodel/CHANGELOG.md')
-rw-r--r-- | activemodel/CHANGELOG.md | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md index 571c050f2f..912b307683 100644 --- a/activemodel/CHANGELOG.md +++ b/activemodel/CHANGELOG.md @@ -1,3 +1,31 @@ +* Fix year value when casting a multiparameter time hash + + When assigning a hash to a time attribute that's missing a year component + (e.g. a `time_select` with `:ignore_date` set to `true`) then the year + defaults to 1970 instead of the expected 2000. This results in the attribute + changing as a result of the save. + + Before: + ``` + event = Event.new(start_time: { 4 => 20, 5 => 30 }) + event.start_time # => 1970-01-01 20:30:00 UTC + event.save + event.reload + event.start_time # => 2000-01-01 20:30:00 UTC + ``` + + After: + ``` + event = Event.new(start_time: { 4 => 20, 5 => 30 }) + event.start_time # => 2000-01-01 20:30:00 UTC + event.save + event.reload + event.start_time # => 2000-01-01 20:30:00 UTC + ``` + + *Andrew White* + + ## Rails 6.0.0.beta1 (January 18, 2019) ## * Add `ActiveModel::Errors#of_kind?`. |