2017-06-07 3 views
0

私はherokuで実行中のアプリケーションを持っていて、毎日1回、every_dayという名前のtakを実行します。タスクスケジューラは正常に動作していますが、私のデータベースには何もしません。私も手動でそれを実行しようとしたと同じ結果です。私は問題が私のコードにあると思うし、誰かが何が間違っているか教えてくれれば感謝しています。タスクのこのコード:私はそれを手動で実行するとHeroku/Rails:タスクスケジューラは動作していますが、何もしません。

task :every_day => :environment do 
    unactive_auction = Auction.where(ended: false).where('created_at < ?', 14.days.ago) 
    unactive_auction.update_all(:ended => true) 
end 

私はこれを取得:

, [2017-06-07T07:08:26.348223 #4] DEBUG -- : Auction Load (1.7ms) SELECT "auctions".* FROM "auctions" ORDER BY "auctions"."id" ASC LIMIT $1 [["LIMIT", 1000]] 
D, [2017-06-07T07:08:26.677182 #4] DEBUG -- : SQL (1.3ms) UPDATE "auctions" SET "ended" = 't' WHERE "auctions"."ended" = $1 AND (created_at < '2017-05-24 07:08:26.674476') [["ended", false]] 

私は私が間違ってやっている見当がつかない。それは働いているように見えますが...しかし、それは何もしません。

+0

あなたは何もしないと言いますか?どのように確認しますか? 'terminated'ブール値ですか?あなたのコンソールで同じものを実行してみてください –

答えて

1

クエリパラメータを満たすオブジェクトがありますか?レールコンソールで ラン:

unactive_auction = Auction.where("ended is ? and created_at < ?", false, 14.days.ago) 

そして、それは、タスクを実行する前に何かを返すかどうかを確認します。

+0

この行に問題があるようです。私は "終了した部分"を削除し、今は動作します。ありがとう! – RIP

関連する問題