2012-07-11 52 views
0

我是ROR noob誰繼承了一個項目(Ruby版本1.9.3p0,Rails版本3.0.6,rake版本0.9.2),它執行一個耙子作爲cronjob的一部分。這已將「rake aborted!undefined method [] ='for nil:NilClass」輸出到其日誌文件中。當我執行跟蹤我得到以下輸出:當在cron作業中運行rake時,「rake aborted!undefined method`[] ='for nil:NilClass」消息

rake aborted! 
undefined method `[]=' for nil:NilClass 
/var/www/nostos-source-illiad/lib/nostos-source-illiad/record.rb:48:in `block in charge!' 
(eval):22:in `form_with' 
/var/www/nostos-source-illiad/lib/nostos-source-illiad/record.rb:47:in `charge!' 
/var/www/nostos/app/models/transaction.rb:65:in `block (2 levels) in sync!' 
/var/www/nostos/app/models/transaction.rb:58:in `each' 
/var/www/nostos/app/models/transaction.rb:58:in `block in sync!' 
/var/www/nostos/app/models/transaction.rb:57:in `each' 
/var/www/nostos/app/models/transaction.rb:57:in `sync!' 
/var/www/nostos/lib/tasks/nostos.rake:17:in `block (2 levels) in <top (required)>' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/rake-0.9.2/bin/rake:32:in `<top (required)>' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/bin/rake:19:in `load' 
/home/deployer/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/bin/rake:19:in `<main>' 
Tasks: TOP => nostos:cron 

我無法確定究竟是什麼導致了此問題,並正在尋找一些建議/方向。我不認爲這是由here報道的同一問題引起的,但我不確定。任何幫助,將不勝感激。謝謝!

編輯: 代碼爲nostos:rake可以找到here

代碼transaction.rb可以找到here

+0

你能提供'nostos.rake'的代碼嗎? – 2012-07-11 17:13:51

+0

也可能需要源自nostos-source-illiad的'transaction.rb'和'record.rb'的代碼。答案可以從'transaction.rb'行65找到。 – Mika 2012-07-11 17:25:33

+0

record.rb的代碼可以在[這裏]找到(https://github.com/bricestacey/nostos-source-illiad/blob/master/lib/nostos -source-illiad/record.rb)(我只能添加2個以上的鏈接作爲新用戶 - 對不起!) – jables 2012-07-11 20:31:13

回答

0

經過進一步的審查,這個問題似乎是由於一組無效的憑據被傳入。解決此問題後刪除了上述消息。感謝您查看這個!

+1

通過解析憑證來解決你的問題? – Himz 2012-10-07 15:37:32

相關問題