【发布时间】:2016-06-27 11:06:28
【问题描述】:
我正在尝试研究如何编写一个每天运行的 rake 任务,并找到剩余天数为 0 的位置以将列数量更新为零。
我在我的模型中定义了以下方法,尽管它们似乎并不完全有效,因为我在视图中收到以下错误
undefined method `-@' for Mon, 27 Jun 2016:Date
def remaining_days
expired? ? 0 : (self.expire_at - Date.today).to_i
end
def expired?
(self.expire_at - Date.today).to_i <= 0
end
def expire_credits
if expired?
self.update(:expire_at => Date.today + 6.months, :amount => 0)
end
end
对于我从未写过这些的 rake 任务,我认为我可以调用 StoreCredit 的一个方法,如果满足某些条件,该方法将使积分过期,但我不确定这一切是如何工作的
task :expire_credits => :environment do
puts 'Expiring unused credits...'
StoreCredit.expire_credits
puts "done."
end
【问题讨论】:
标签: ruby-on-rails activerecord rake