########### ## File: app/controllers/application_controller.rb class ApplicationController < ActionController::Base around_filter :catch_prerequisite private def catch_prerequisite need = catch :prerequisite_unmet do yield return nil end return redirect_to :action => need if need end def prerequisite(need) if send(need.to_s + '?') return true else throw :prerequisite_unmet, need end end end ########### ## File: app/controllers/other_controller.rb class OtherController < ApplicationController def login if params[:username] session[:user] = User.find_by_username(params[:username]) redirect_to :action => :settings else render :login end end def settings prerequisite :login render :settings end private def login? return true if session[:user] end end