Rails define o layout de dentro de um método before_filter

possível redefinir um layout padrão de dentro de um método before_filter no Rails

Tenho o seguinte como meu Contacts_controller.rb:

class ContactsController < ApplicationController
  before_filter :admin_required, :only => [:index, :show]
  def show
    @contact = Contact.find(params[:id])
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @contact }
    end
  end
  [...]
end

E o seguinte no meu application_controller.rb

class ApplicationController < ActionController::Base
  layout 'usual_layout'
  private
  def admin_required
    if !authorized?          # please, ignore it. this is not important
      redirect_to[...]
      return false
    else
      layout 'admin'  [???]  # this is where I would like to define a new layout
      return true
    end
  end
end

Sei que poderia colocar ...

layout 'admin', :only => [:index, :show]

... logo após "before_filter" em "ContactsController", mas como já tenho vários outros controladores com muitas ações sendo filtradas adequadamente como requeridas pelo administrador, seria muito mais fácil se eu pudesse redefinir o layout de "usual_layout" para "admin" dentro do método "admin_required".

BTW, colocando ...

layout 'admin'

... dentro de "admin_required" (como tentei no código acima), recebo uma mensagem de erro de método indefinido. Parece funcionar apenas fora de defs, assim como eu fiz para "usual_layout".

Desde já, obrigado

questionAnswers(3)

yourAnswerToTheQuestion