Trilhos maneira de renderizar diferentes ações e visualizações com base no tipo de usuário?

Eu tenho alguns tipos diferentes de usuários (compradores, vendedores, administradores).

Gostaria que todos tivessem o mesmo URL account_path, mas usassem uma ação e uma exibição diferentes.

Estou tentando algo assim ...

class AccountsController < ApplicationController
  before_filter :render_by_user, :only => [:show]

  def show
   # see *_show below
  end

  def admin_show
    ...
  end

  def buyer_show
    ...
  end

  def client_show
    ...
  end
end

Foi assim que defini render_by_user no ApplicationController ...

  def render_by_user
    action = "#{current_user.class.to_s.downcase}_#{action_name}"
    if self.respond_to?(action) 
      instance_variable_set("@#{current_user.class.to_s.downcase}", current_user) # e.g. set @model to current_user
      self.send(action)
    else
      flash[:error] ||= "You're not authorized to do that."
      redirect_to root_path
    end
  end

Ele chama o método * _show correto no controlador. Mas ainda tenta renderizar "show.html.erb" e não procura o modelo correto que tenho lá chamado "admin_show.html.erb" "comprador_show.html.erb" etc.

Eu sei que posso ligar manualmenterender "admin_show" em cada ação, mas achei que poderia haver uma maneira mais limpa de fazer isso tudo no filtro anterior.

Ou alguém já viu um plug-in ou uma maneira mais elegante de dividir ações e visualizações por tipo de usuário? Obrigado!

Aliás, estou usando o Rails 3 (caso isso faça alguma diferença).

questionAnswers(1)

yourAnswerToTheQuestion