Tips of the Day
- debugging django SQL problems
- documenting convention for Rails routes
Debugging Django SQL problems
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[0]['sql']
'queries' is an array of dicts. The useful keys on the dict are 'sql' and 'raw_sql'.
Documenting Convention for Rails Routes
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.