0
我對Ruby知之甚少,但繼承了最近開始有問題的Ruby應用程序。對於零的Ruby代碼崩潰與ExceptionNoMethodError undefined方法:NilClass
有一個基於Resque的工作,它定期運行,並且一直運行良好,直到現在它突然停止工作。我驗證了代碼沒有改變,因此可能認爲這是一個與數據相關的問題。
它運行了大約一分鐘,然後在Resque中顯示爲錯誤。
Retried just now
Remove
ClassProcessor::ReportRunnerArguments
ExceptionNoMethodErrorErrorundefined method `nass_code' for nil:NilClass
/var/www/applications/usps/app/models/report.rb:58:in `build_node'
/var/www/applications/usps/lib/processor/processor/reporter.rb:9:in `block in prep'
/usr/local/rvm/gems/ruby1.9.3p448/gems/activerecord3.2.8/lib/active_record/relation/delegation.rb:6:in `each'
/usr/local/rvm/gems/ruby-1.9.3-p448/gems/activerecord-3.2.8/lib/active_record/relation/delegation.rb:6:in `each'
/var/www/applications/usps/lib/processor/processor/reporter.rb:8:in `prep'
/var/www/applications/usps/lib/processor/processor/reporter.rb:15:in `execute'
/var/www/applications/usps/app/models/owner.rb:33:in `gone'
/var/www/applications/usps/lib/processor/processor/report_runner.rb:5:in `perform'
的代碼有問題的行是:
<tran:NassCode>"+self.trip.master_destination.nass_code+"</tran:NassCode>
master_destination來自應用程序/模型/ trip.rb:
class Trip < ActiveRecord::Base
belongs_to :contract
belongs_to :origin, :class_name => 'Location'
belongs_to :destination, :class_name => 'Location'
belongs_to :frequency
...
def master_destination
return master_trip_end.destination
end
這目標是一個位置的參考。 rb,在錯誤中引用了'nass_code'。
class Location < ActiveRecord::Base
belongs_to :owner
has_one :address, :as => :owner, :dependent => :destroy
attr_accessible :name, :nass_code, :radius, :address_attributes
我知道,沒有太多去 - 但什麼原因導致那種錯誤的,等等任何線索或想法...
看起來像數據問題。 'trip.master_destination'返回零。 – infused