Everything you wanted to know about layouts: global layouts, controller layouts, shared layouts, dynamic layouts and action layouts. Yes, there really are that many ways to specify a layout.
# projects_controller.rb
layout :user_layout
def index
@projects = Project.find(:all)
render :layout => 'projects'
end
protected
def user_layout
if current_user.admin?
"admin"
else
"application"
end
end