我在這裏遇到了一個簡單的問題。我正在構建一個管理優惠券數據庫的應用程序,每個優惠券都有一個到期日期。我正在嘗試構建一個將刪除過期優惠券的佣金任務。從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