It helps me:
class ApplicationController < ActionController::Base
alias_method :devise_current_user, :current_user
private
def current_user
user = if params[:user].blank?
devise_current_user
else
User.find_by(email: params[:user][:email])
end
detect_role(user) if !user.blank?
end
def detect_role(user)
roles = user.roles_name
user = if roles.include?("mentor")
user.becomes(Mentor)
elsif !roles.include?("admin") && !roles.include?("mentor")
user.becomes(Student)
else
user
end
end
end
source
share