如何调试rails 3 gem?

时间:2011-02-15 15:49:06

标签: ruby-on-rails ruby-on-rails-3 debugging gem rails-engines

我已根据本教程创建了一个gem /引擎:

http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/

但是,我在尝试在新创建的应用程序中使用gem时遇到错误。在尝试访问应用程序时,我得到一个“路由错误 - 未定义的方法`sub'为nil:NilClass”。

我在日志文件中唯一能看到的是同样的错误。没有堆栈跟踪/调试跟踪,因此很难确定错误的来源。理想情况下,我希望看到“来自gem”的堆栈跟踪,但看起来rails不会调试源自应用程序外部的错误?

我正在使用rvm,ruby 1.9.2,rails 3.0.1。

这是来自gem的我的config / routes.rb文件,虽然我不认为这是一个路由错误,因为调试消息建议..

Rails.application.routes.draw do
    resources :pictures, :controller => 'morph/pictures'
end

有什么建议吗?

2 个答案:

答案 0 :(得分:15)

如果取消注释

Rails.backtrace_cleaner.remove_silencers!
config/initializers/backtrace_silencers.rb

它将显示更完整的堆栈跟踪。它对我有用。

答案 1 :(得分:2)

你的控制台是否有回溯?

如果您无法找到任何其他输出,那么您可以在应用程序开头附近放置一个“调试器”语句,然后单步执行源代码,直到出现错误。

你也可以对gem / plugin源做同样的事情。

编辑:看起来作者在文章的底部有一个演示代码的链接。这可能也很有用。