Я застрял на простом вопросе здесь.Я создаю приложение, которое управляет базой данных купонов, каждый из которых имеет срок годности.Я пытаюсь построить грабли, которые будут удалять просроченные купоны.Соответствующий код из 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
Так что я как бы вне идей.Что я здесь не так делаю?
Большое спасибо за вашу помощь.Я уверен, что у меня не было бы работы, если бы не переполнение стека!