我有一个带有属性Bar
的有效关系shift_date
对象。 shift_date
表示3月到6月之间的每个日。 3月和6月来自Foo
,其中包含start_month
和end_month
:
f = Foo.find(1)
days = (f.end_month - f.start_month).to_i
weeks = (days * 0.142857).round(2)
f.bars
会给我days
个对象。其中days
是objetcs的总数。
我的麻烦是获取Bar
个对象,第1,2或3周的对象等:
f.bars.where('shift_date >= ?', (weeks/7.days)).group_by{ |result| result }
运算符不存在:没有时区的时间戳> = numeric
那么我在说什么?如果有的话,在第1周或第5周给我所有物品。我该怎么办呢?
我正在做一些事情,但不对:
f.bars.where('shift_date >= ?', Date.today).group_by{ |result| result}
编辑:
我几乎在那里。我可以用以下方式解决这些日子:
days_array = *(f.start_month..f.end_month)
然后
f.bars.where(shift_date: days_array[0]..days_array[7])
那就是答案!但是......不是真的。对于我的观点,我需要在7天的时间间隔内将展开的天数分组为星期,因此days_array[0]
到days_array[7]
将是第1周,而days_array[8]
到days_array[14]
将是一周2等如何在视图中显示?这将为我提供我需要的一切。