2014-09-25 35 views
0

如何在Ruby on Rails 4.1.4中实现以下行为?如何在Ruby on Rails中使用6.months.ago - 1.days.ago

Purchase.where('purchase_date <= ?', 6.months.ago - 1.days.ago).each do |purchase| 
    # ... 
end 

在此先感谢。

+3

实际上您需要什么作为resut? – Kushal 2014-09-25 09:31:17

+1

你能解释一下你想要的吗?你是否想列出6个月前的所有采购(减去一天)还是你想要列出从过去6个月到采购日的所有采购? – 2014-09-25 09:42:29

+0

无论如何,你对这两种情况都有答案。 :) – BroiSatse 2014-09-25 09:43:06

回答

2

如何:

Purchase.where('purchase_date <= ?', 6.months.ago + 1.day).each do |purchase| 
+0

为什么加上而不是减号? – sebkkom 2014-09-25 09:46:37

+0

@sebkomianos - 我认为的意思是'6.months.ago - 1.day.ago =(6.months - 1.day).ago = 6.months.ago + 1.day' – BroiSatse 2014-09-25 10:01:33

5

制作之间过滤器?如果使用ActiveRecord,请执行以下操作:

Purchase.where(purchase_date: 6.months.ago..1.day.ago).each do |purchase| 
    ## do ..... 
end 
+1

它应该是'6 .months.ago..1.day.ago'? – DNNX 2014-09-25 09:40:32

+0

哦......改变了它。 – dddd1919 2014-09-25 09:41:47