NOTE: If you’re using Ruby 1.8.x please use the 1.x series of rack-debug
Install
$ gem install rack-debug
Rails
# config/environments/development.rb config.gem 'rack-debug' config.middleware.use 'Rack::Debug' # RAILS_ROOT/Rakefile require 'rack-debug/tasks'
Middleware
# add a use line to your builder require 'rack/debug' Rack::Builder.new do use Rack::Debug run MyApp.new end # can optionally specify where to put the sockets use Rack::Debug, :socket_path => '/tmp/rack-debug' # Rakefile require 'rack-debug/tasks'
Add breakpoints to your code
@user = User.find(params[:id]) debugger render :show
Debugging:
# run the rake task, $ rake debug Connected. # refresh a page in your browser, your app will break at debugger statements (rdb:1) p @user #<User id: 1, name: "David Dollar", email: "ddollar@gmail.com", created_at: "...", updated_at: "..."> # can specify the socket path SOCKET_PATH=/tmp/rack-debug rake debug
Meta:
Author/Maintainer: David Dollar Patches contributed by: Bart Teeuwisse
Thanks to:
Rack::Bug for a good example of Rack middleware in Rails Ben Scofield for making me want to build some Rack middleware