diff options
author | Jey Balachandran <jey.balachandran@gmail.com> | 2012-03-18 20:44:46 -0700 |
---|---|---|
committer | Jey Balachandran <jey.balachandran@gmail.com> | 2012-03-18 20:44:46 -0700 |
commit | d2d2fc0834503bf377d9d7adb136b16856ae49d5 (patch) | |
tree | d7b8fa103a7d35bb22e7a0b6932b941e7a5192b0 /actionpack/lib | |
parent | d3bbb23b2fdc6f597410e83e604d4919174aaa27 (diff) | |
download | rails-d2d2fc0834503bf377d9d7adb136b16856ae49d5.tar.gz rails-d2d2fc0834503bf377d9d7adb136b16856ae49d5.tar.bz2 rails-d2d2fc0834503bf377d9d7adb136b16856ae49d5.zip |
Fixes issue #5222: DateTimeSelector builds invalid dates on leap day when discarding both day and month.
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_view/helpers/date_helper.rb | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/actionpack/lib/action_view/helpers/date_helper.rb b/actionpack/lib/action_view/helpers/date_helper.rb index ee9f0da9b8..be67042999 100644 --- a/actionpack/lib/action_view/helpers/date_helper.rb +++ b/actionpack/lib/action_view/helpers/date_helper.rb @@ -674,9 +674,9 @@ module ActionView @options[:discard_minute] ||= true if @options[:discard_hour] @options[:discard_second] ||= true unless @options[:include_seconds] && !@options[:discard_minute] - # If the day is hidden and the month is visible, the day should be set to the 1st so all month choices are - # valid (otherwise it could be 31 and February wouldn't be a valid date) - if @datetime && @options[:discard_day] && !@options[:discard_month] + # If the day is hidden, the day should be set to the 1st so all month and year choices are valid. Otherwise, + # February 31st or February 29th, 2011 can be selected, which are invalid. + if @datetime && @options[:discard_day] @datetime = @datetime.change(:day => 1) end @@ -701,9 +701,9 @@ module ActionView @options[:discard_month] ||= true unless order.include?(:month) @options[:discard_day] ||= true if @options[:discard_month] || !order.include?(:day) - # If the day is hidden and the month is visible, the day should be set to the 1st so all month choices are - # valid (otherwise it could be 31 and February wouldn't be a valid date) - if @datetime && @options[:discard_day] && !@options[:discard_month] + # If the day is hidden, the day should be set to the 1st so all month and year choices are valid. Otherwise, + # February 31st or February 29th, 2011 can be selected, which are invalid. + if @datetime && @options[:discard_day] @datetime = @datetime.change(:day => 1) end |