【发布时间】:2014-03-16 09:15:18
【问题描述】:
我得到了建议
将“位置”括在 lamda 中,因为 Time.now 会在 类加载,而不是在调用方法时,因此如果您的应用程序运行 一个多月你就会开始得到不正确的结果。
例子:
scope :from_this_month, where("vote.created_at > ? AND vote.created_at < ?", Time.now.beginning_of_month, Time.now.end_of_month)
到
scope :from_this_month, lambda { where("votes.created_at > ? AND votes.created_at < ?", Time.now.beginning_of_month, Time.now.end_of_month) }
我有各种函数在计算中使用时间并确定它们是否需要运行。
这些功能能否正常工作?如果不能,即使在应用程序运行一个月后,我如何包含 lambda 以获得所需的输出?
模型中的作用域
scope :from_this_month, where("votes.created_at: Time.now.beginning_of_month, (Time.now.end_of_month))
在每天运行的 rake 任务中检查它是否必须向特定企业发送报告
task :send_reports => :environment do
if Time.now.monday? && (business.report_schedule == 'monday')
...
end
模型中的方法
employee.votes.exists?(phone_id: self.phone_id, created_at: 7.days.ago..DateTime.now)
【问题讨论】:
标签: ruby-on-rails ruby datetime lambda