Edit 2012-07-05: You can now install rack-debug in a much more easy way by using my debugger-rails gem.

Without Passenger

In my last post we learned how to debug ruby scripts. It can be done as well with a rails application, you just have to start it with script/server -u. The -u means to start on debug mode. Just make sure you have the ruby-debug gem installed.

With Passenger

That works amazing… unless you use Passenger on development. If you do, then you’ll need a different way to run the debugger. Don’t panic, it’s quite easy, thanks to the rack-debug gem. Rack::Debug is a gem which provides an easy interface to ruby-debug for applications running on Passenger. And the good thing about it is that… it just works!

To use it, just add the ruby-debug gem to your Gemfile, make sure to use the 1.4.x version if you’re running ruby 1.8.x, since the new 2.x version is prepared for ruby 1.9.2.

Now that your gem is installed, add the middleware to Rails.

And the helper rake tasks.

Now you can just add a debugger statement on any line on your application, restart it and run rake debug so that the Rack::Debug gem connects to the debugger. Easy, eh?

Enjoy the debugging!