耙子流产!无法将哈希转换为字符串?

时间:2012-04-05 19:23:50

标签: ruby-on-rails ruby

如何更好地调试此消息?跟踪显示了我的一个文件中的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'

我觉得自己已经碰到了一堵砖墙。因此,虽然我急于修复这个错误,但我更加急于找出如何更好地调试这些消息?当然可以轻松处理类似“无法将哈希转换为somefile.rb:112中的字符串”的内容吗?

1 个答案:

答案 0 :(得分:1)

要了解ruby-debug: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)

解决问题的一种方法是使用ruby-debug:

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