我知道如果我在 Rails 模型中使用作用域方法,我应该将查询存储在 proc 对象中,以便在我调用它时评估它,而不是在启动应用程序时评估它。例子:
scope :shifts_last_week, -> { where(date: (Date.today - 7)..(Date.today)) }
同一模型中的类方法是否需要相同的过程?这些方法在启动时是否以相同的方式进行评估,还是我可以按如下方式定义方法?
def self.shifts_this_week
where( date: (Date.today.beginning_of_week(WEEK_START))..(Date.today + 1) )
end