2012-04-05 96 views
1

如何更好地調試此消息?跟蹤顯示從我的一個文件中的3行 - application.rb:耙子中止!無法將哈希轉換爲字符串?

18 module CustomApp 
19 class Application < Rails::Application 
... 
49 # Enable the asset pipeline 

有沒有辦法找出到底是哪個文件拋出這個錯誤?

的最後一絲:

/home/user/.rvm/gems/ruby-1.9.3-p0/gems/figaro-0.2.0/lib/figaro/railtie.rb:8:in `update' 

我覺得我已經打了一個磚wall..for這個原因,雖然我很想解決這個錯誤,我更急於找出如何更好地調試這些消息?當然,像「不能將哈希轉換爲字符串在somefile.rb:112」會很容易處理?

+0

這並不是說創業板的最新版本,也許嘗試更新呢? – 2012-04-05 19:26:20

+0

剛剛更新了捆綁 - 「安裝figaro(0.2.0)」。同樣的錯誤。用新的跟蹤更新原始問題。 – 2012-04-05 19:29:54

+0

它看起來可能會遇到'config/application.yml'文件的問題。您是否以任何方式改變過這種情況,或者格式不正確? (我猜這是基於讀取'最後一次跟蹤中報告的代碼行'的猜測。' – 2012-04-05 19:42:58

回答

1

要了解紅寶石調試:http://bashdb.sourceforge.net/ruby-debug.html

要了解調試Rails的:http://guides.rubyonrails.org/debugging_rails_applications.html

錯誤是從該文件來:

lib/figaro/railtie.rb line 8 

在該文件中的代碼塊:

path = Rails.root.join("config/application.yml") 
ENV.update(YAML.load(File.read(path)) || {}) if File.exist?(path) 

單向麻煩拍攝是使用紅寶石調試:

gem install ruby-debug 

和編輯文件,使其顯示出更好的錯誤:

path = Rails.root.join("config/application.yml") 
if File.exist?(path) 
    debugger 
    f = File.read(path) 
    y = YAML.load(f) 
    ENV.update(y || {}) 
end 
+0

對於Ruby 2.0,還可以看到byebug gem,它是新的和快速的。 – joelparkerhenderson 2013-12-12 06:58:43

相關問題