2015-09-04 9 views
8

Ich benutze das Juwel 'Uhrwerk' in einer Rails 3.2 App. Die App läuft auf Heroku. Der Uhrjob läuft um 1 Uhr morgens - aber es führt den Code nicht aus. HierSchienen Uhrwerk läuft nicht Code

ist der clock.rb Code:

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 
    } 

Das Protokoll zeigt:

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

Wenn ich Wege harken, erhalte ich:

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

Antwort

7

Der Fehler, dass ist Die Route ist nicht existent. Da die Route vorhanden ist, bedeutet dieses Problem normalerweise, dass die Rails-Routen nicht in den aktuellen Bereich geladen wurden.

Sie müssen möglicherweise Rails Weg Helfer aufzunehmen, um es richtig funktionieren: 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 
} 

Alternativ ist es ein bisschen vertrocknen Sie einfach alle die Strecke Helfer am Anfang umfassen kann von die Datei mit:

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

# ...