你如何调试Rails应用程序?

10 ruby java eclipse netbeans ruby-on-rails

是否可以以类似于Java应用程序的方式调试Rails应用程序 - 设置断点并插入代码?

什么是最好的工具?

我有一个混合的Java/Ruby on Rails应用程序,我可以在Eclipse或Netbeans中运行.

我想在这个应用程序中插入一些代码,并试图找出我遇到的问题的原因.

在Eclipse中如果我在我的设置断点blog_controller然后选择'Debug'按钮,它似乎使用ruby-debug-ide gem来执行代码,但是我得到了这个无用的输出,没有选项可以进入任何源:

Fast Debugger (ruby-debug-ide 0.4.5) listens on localhost:56726
    ./war/WEB-INF/app/controllers/blog_controller.rb:1
    C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_load'
    C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/lib/ruby-debug.rb:101:in `debug_program'
    C:/Ruby18/lib/ruby/gems/1.8/gems/ruby-debug-ide-0.4.5/bin/rdebug-ide:82
    C:/Ruby18/bin/rdebug-ide:19:in `load'
    C:/Ruby18/bin/rdebug-ide:19
Uncaught exception: uninitialized constant ApplicationController
Run Code Online (Sandbox Code Playgroud)

我不确定我做错了什么,或者这是否是我能想到的.

cse*_*ton 8

我最常用的调试器是ruby-debug gem,它是一个gdb-esque命令行调试器.一旦您学习了一些命令,它就会非常快速有效,并为您提供一些方便的功能,例如能够irb在程序环境中启动并进行即时更改.

当你需要在远程服务器上调试时,基于它的命令行就派上用场了.

  • 这是我使用的方法,我非常喜欢它.这是一个链接,其中包含黑色易读文本的调试器命令,而不是浅灰色:-) http://blog.nanorails.com/articles/2006/7/14/a-better-rails-debugger-ruby -debug (2认同)

Pet*_*aat 6

你可以期待更多. 我已经使用Aptana的RadRails版本的Eclipse来调试Rails应用程序 - 如您所述 - 设置断点并单步执行代码.

你可能做错了什么. 看起来好像是在尝试调试单个控制器文件,而不是调试Rails应用程序.当我尝试从命令行执行控制器文件时,我收到类似的消息:

C:\workspace\myapp\app\controllers>ruby users_controller.rb
users_controller.rb:1: uninitialized constant ApplicationController (NameError)
Run Code Online (Sandbox Code Playgroud)

在Aptana RadRails中,我选择Run > Debug As > Ruby Application调试应用程序.