Je suis coincé sur un problème simple ici. Je construis une application qui gère une base de données de coupons, dont chacun a une date d'expiration. J'essaye de construire une tâche de rake qui supprimera les coupons expirés. Le code correspondant de la rakefile ressemble à ceci:Détruire un objet Rails 3 dans Rake?
desc "Deletes expired offers from the database."
task :purge_expired => :environment do
today = Date.today.to_s
Offer.where('expires_on < ?', today).destroy
end
qui échoue cependant avec le message d'erreur suivant:
rake aborted!
wrong number of arguments (0 for 1)
Je ne suis pas sûr de savoir pourquoi. Quels arguments seraient nécessaires?
A titre d'expérience, je trouve que cela a bien fonctionné:
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
qui a renvoyé le bon nombre de dossiers, donc je suppose que je suis rassembler avec succès les bons objets.
FWIW, j'ai essayé cela aussi, et n'a pas eu de chance:
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
Je suis un peu d'idées. Qu'est-ce que je fais mal ici?
Merci beaucoup pour votre aide. Je suis sûr que je n'aurais pas de travail s'il n'y avait pas Stack Overflow!
A travaillé comme un champion, @Rob Davis. Merci! –