From 7b57119146d7a7c648fb2888b0d019d1e64b7a3e Mon Sep 17 00:00:00 2001 From: Andy Allan Date: Thu, 27 Jan 2011 17:55:36 +0000 Subject: [PATCH] Another approach, but this time without scattering stuff all over the methods --- app/controllers/user_controller.rb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 3d2012064..ed17c1e41 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -1,5 +1,5 @@ class UserController < ApplicationController - layout 'site', :except => [:api_details] + layout :choose_layout before_filter :authorize, :only => [:api_details, :api_gpx_files] before_filter :authorize_web, :except => [:api_details, :api_gpx_files] @@ -257,7 +257,6 @@ class UserController < ApplicationController elsif flash[:notice].nil? flash.now[:notice] = t 'user.login.notice' end - render :layout => 'slim' end def logout @@ -497,4 +496,17 @@ private rescue ActiveRecord::RecordNotFound redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name] unless @this_user end + + ## + # Choose the layout to use. See + # https://rails.lighthouseapp.com/projects/8994/tickets/5371-layout-with-onlyexcept-options-makes-other-actions-render-without-layouts + def choose_layout + if [ 'api_details' ].include? action_name + nil + elsif [ 'login', 'new', 'terms'].include? action_name + 'slim' + else + 'site' + end + end end -- 2.43.2