desc "This task is called by the Heroku scheduler add-on"
task :queue => :environment do
puts "Updating feed..."
@books = Book.all
@books.update_queue
puts "done."
end
上記のコードは、scheduler.rake
lib/tasks にあるというファイルにあります。実行すると、次のようrake queue
になります。
Updating feed...
rake aborted!
undefined method `update_queue' for #<Array:0x007ff07eb3ffd0>
そのメソッドは、私の Books モデルで次のように定義されています。
def update_queue
days_gone = (Date.parse(:new_books.last.created_at.to_s) - Date.today).to_i
unless days_gone > -7
new_book = self.user.books.latest_first.new_books.last
new_book.move_from_queue_to_reading
user.books.reading_books.move_from_reading_to_list
else
self.user.books.create(:title => "Sample book", :reading => 1)
end
end
これは本にアクセスしていないだけなので、この未定義のエラーが発生するのはなぜですか? ここで何が間違っていますか?各本のレコードを更新したいだけです。