我有一个客户想在她员工最后一个职位(Date_in_Position)上任之日之前看到她的员工团队的报告。她希望他们按不到1年、1-3年、3-5年和5年以上的时间分组。我做了一个小方法来返回一个字符串,该字符串可用于group by方法,但只有不到1年的时间可以正常工作。其他的都超过5年了。
def dip_range
case self.date_in_position
when 1.year.ago...Date.today
'< 1 year'
when 3.years.ago...(1.year.ago + 1)
'1-3 years'
when 5.years.ago...(3.years.ago + 1)
'3-5 years'
else
'> 5 years'
end
end
最佳答案
另一种方法是:
def dip_range
case
when self.date_in_position.between?(1.year.ago,Date.today)
'< 1 year'
when self.date_in_position.between?(3.years.ago,(1.year.ago + 1))
'1-3 years'
when self.date_in_position.between?(5.years.ago,(3.years.ago + 1))
'3-5 years'
else
'> 5 years'
end
end
关于ruby-on-rails - rails group_by相对日期范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6668707/