You can install Django debug toolbar middleware, or you can set a breakpoint and inspect queries that have been run on the current database connection:
from django import db db.connection.queries['sql']
'queries' is an array of dicts. The useful keys on the dict are 'sql' and 'raw_sql'.
I started a mini-hackathon for a beer review app I've wanted to write for a while. While I was scaffolding, I thought it'd be useful to document the routes inline with their controller:
class ReviewsController < ApplicationController # beer_reviews(@beer) => GET /beers/:beer_id/reviews def index end # new_beer_review(@beer) => GET /beers/:beer_id/reviews/new # new_review => GET /reviews/new def new end # beer_reviews(@beer) => POST /beers/:beer_id/reviews # reviews => POST /beers/reviews def create end end
The benefit is that for any given controller you can always add '_path' or '_url' to the end of the comment without having to run rake routes and grepping for the controller/action pair. This convention also lets you see every possible way of accessing a given action instead of only the basic method.