我有一个填充了created_at
字段的记录。我想要做的是知道created_at
是否是在1-2周前创建的,意思是第8,9,10,11,12,13,14天,而不是1-7或15 +。
鉴于我无法在SQL中查询,最好的Rails方法是什么?
答案 0 :(得分:5)
((2.weeks.ago)..(1.week.ago)).include?(record.created_at)
假设2周前是8月13日,1周前是8月20日,记录的created_at
属性位于中间位置,这将返回true
。
答案 1 :(得分:1)
这适用于Ruby 2.0.0,Rails 4.0
Record.created_at.between?(((Date.today - 14.days).beginning_of_day),(Date.today.end_of_day))
答案 2 :(得分:1)
您可以使用范围
Range.new((Date.today-14.days),
(Date.today-7.days)) === record.created_at
根据两周前的意思调整范围广告。
修改强> 一个班轮有点简洁。要打破它。
start_date = (Date.today - 14.days)
end_date = (Date.today - 7.days)
# Now start_date is 2 weeks ago, and end_date is 1 week ago.
# Test if created_at falls within this range
Range.new(start_date.to_date, end_date.to_date) === record.created_at