From http://guides.rubyonrails.org/action_controller_overview.html