Destruindo um objeto Rails 3 em rake?
Estou preso em uma questão simples aqui. Estou criando um aplicativo que gerencia um banco de dados de cupons, cada um com uma data de validade. Estou tentando criar uma tarefa de rake que excluirá os cupons expirados. O código relevante do rakefile é assim:
desc "Deletes expired offers from the database."
task :purge_expired => :environment do
today = Date.today.to_s
Offer.where('expires_on < ?', today).destroy
end
Isso, porém, falha com a seguinte mensagem de erro:
rake aborted!
wrong number of arguments (0 for 1)
Só não sei por que. Quais argumentos seriam necessários?
Como um experimento, descobri que isso funcionava bem:
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
Ele retornou o número certo de registros, então suponho que estou coletando com sucesso os objetos certo
FWIW, eu tentei isso também e não tive sorte:
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
Então, eu estou meio sem idéias. O que eu estou fazendo errado aqui
Muito obrigado pela sua ajuda. Tenho certeza de que não teria um emprego se não fosse o Stack Overflow!