2012-04-05 58 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

相关问题