【发布时间】:2011-06-10 19:09:01
【问题描述】:
我在这里遇到了一个简单的问题。我正在构建一个管理优惠券数据库的应用程序,每个优惠券都有一个到期日期。我正在尝试构建一个将删除过期优惠券的 rake 任务。 rakefile 中的相关代码如下所示:
desc "Deletes expired offers from the database."
task :purge_expired => :environment do
today = Date.today.to_s
Offer.where('expires_on < ?', today).destroy
end
但是失败并显示以下错误消息:
rake aborted!
wrong number of arguments (0 for 1)
我只是不确定为什么。需要什么论据?
作为一个实验,我发现这很好用:
desc "Deletes expired offers from the database."
task :purge_expired => :environment do
today = Date.today.to_s
puts Offer.where('expires_on < ?', today).count
end
这返回了正确数量的记录,所以我假设我成功收集了正确的对象。
FWIW,我也试过这个,但没有运气:
desc "Deletes expired offers from the database."
task :purge_expired => :environment do
today = Date.today.to_s
@offers = Offer.where('expires_on < ?', today)
@offers.destroy
end
所以我有点没有想法。我在这里做错了什么?
非常感谢您的帮助。如果不是 Stack Overflow,我敢肯定我不会有工作!
【问题讨论】:
标签: ruby-on-rails rake