我有一个客户想在她员工最后一个职位(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/

10-10 21:48