Integer#years.ago
возвращает DateTime
, который не сравнивается должным образом с Date
объектами, которые вы включаете.Я не совсем уверен, почему это так, но если вы измените
case self.date_in_position
на case self.date_in_position.to_datetime
, этот код будет работать в большинстве случаев.
Кроме того, ваши оценки неверны.Если кто-то начал работать 1 год назад сегодня, он должен показывать себя как 1-3 года, верно?Итак:
def dip_range
case self.date_in_position
when (1.year.ago+1.day).to_date..Date.today
'< 1 year'
when (3.years.ago+1.day).to_date..1.year.ago.to_date
'1-3 years'
when (5.years.ago.to_date+1.day).to_date..3.years.ago.to_date
'3-5 years'
else
'> 5 years'
end
end