2011-12-14 126 views
1

我正在尝试为本周范围内的所有产品,因此它应显示所有产品导致本周的任何一天。本周的范围日期属性?

class Product < ActiveRecord::Base 
    attr_accessible :purchase_date 

    def self.this_weeks 
    where("purchase_date >= ?", Date.at_beginning_of_week - Date.at_end_of_week) 
    end 

    create_table :products do |t| 
     t.date :purchase_date 
    end 
end 

这给了我一个错误,但:

undefined method `at_beginning_of_week' 

我需要做什么来纠正?

回答

3

at_beginning_of_week已在Rails 3中删除。您应该使用beginning_of_week,但要小心,它是一种实例方法。所以,你必须做一些事情,如:

Date.today.beginning_of_week 

此外,还可以使用范围,让您的查询非常好的阅读:

where(:purchase_date => Date.today.beginning_of_week..Date.today.end_of_week) 
+0

谢谢你的两个答案,我将使用新的可读办法。 – LearningRoR 2011-12-14 14:55:04