2015-09-04 8 views
8

Rails 3.2アプリでgem 'clockwork'を使用しています。アプリはHerokuで動作しています。クロックジョブは午前1時に実行されますが、コードを実行していません。ここでRails時計ワークでコードが実行されていない

はclock.rbコードです:

Clockwork.every(1.day, 'DailyJob', :at => '01:00'){ 
    StatsMailer.stats_email.deliver 
    Forecast.where(:run_date => Date.today).each do |forecast| 
     woschedules_run_jobplans_path(:id => forecast.woschedule_id) 
    end 
    } 

ログを示しています

Sep 04 00:00:05 ndeavor-staging app/clock.1: #<NoMethodError: undefined method `woschedules_run_jobplans_path' for Clockwork:Module>

私はルートを熊手場合は、私が手:

woschedules_run_jobplans GET /woschedules/run_jobplans(.:format) woschedules#run_jobplans 

答えて

7

エラーがその中にあります経路は存在しない。ルートDOESが存在するため、この問題は通常、Railsルートが現在のスコープにロードされていないことを意味します。

あなたはそれが正しく機能するためには、Railsのルートのヘルパーを含める必要があります。Rails.application.routes.url_helpers

Clockwork.every(1.day, 'DailyJob', :at => '01:00'){ 
    StatsMailer.stats_email.deliver 
    Forecast.where(:run_date => Date.today).each do |forecast| 
    # Prepend your route with the following: 
    Rails.application.routes.url_helpers.woschedules_run_jobplans_path(:id => forecast.woschedule_id) 
    end 
} 

また、あなたは、単にの先頭にルートヘルパーのすべてを含めることができますビットをそれを乾燥させますファイルを使用:

# Beginning of file 
include Rails.application.routes.url_helpers 

# ... 
関連する問題