我在这里遇到了一个简单的问题。我正在构建一个管理优惠券数据库的应用程序,每个优惠券都有一个到期日期。我正在尝试构建一个将删除过期优惠券的佣金任务。从Rake文件相关的代码如下所示:耙耙销毁Rails 3对象?
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
所以我有点出出主意。我在这里做错了什么?
非常感谢您的帮助。如果不是堆栈溢出,我敢肯定我没有工作!
就像一个冠军,@Rob戴维斯。谢谢! – 2011-06-10 20:31:55