RailsCasts Episode #386: Authorization from Scratch Part 2 http://railscasts.com/episodes/386-authorization-from-scratch-part-2 Requires Ruby 1.9.2 or higher.