Devise admin redirect
devise, ruby-on-rails, ruby-on-rails-3
Solution
I assume you have a boolean `admin` attribute on your User model.
def after_sign_in_path_for(resource)
if current_user.has_role? :admin
rails_admin.dashboard_path
else
user_path(current_user)
end
end
Problem
Im using Devise + CanCan and would like to redirect to my admin interface (generated by rails admin gem) IF its an ADMIN that logs in.. I customized the USER redirect to their respective profile by using the following : ``` class ApplicationController < ActionController::Base protect_from_forgery rescue_from CanCan::AccessDenied do |exception| redirect_to root_path, :alert => exception.message end def after_sign_in_path_for(resource) user_path(current_user) end end ``` role.rb ``` class Role < ActiveRecord::Base has_and_belongs_to_many :users, :join_table => :users_roles belongs_to :resource, :polymorphic => true end ``` ability.rb ``` class Ability include CanCan::Ability def initialize(user) user ||= User.new # guest user (not logged in) if user.has_role? :admin can :manage, :all can :access, :rails_admin can :dashboard end ``` user.rb ``` class User < ActiveRecord::Base rolify devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable ..... ```