我使用devise登录ActiveAdmin(后端)和FrontEnd(注册用户和登录),每个模型分别有AdminUser
和User
。
此外,我使用role_model
和CanCan
来限制AdminUsers的操作。我有5个角色:superadmin, administrator, cashier, operator, accountant
,我的应用程序只有在AdminUser为superadmin或cashier时才能正常工作。如果该用户有另一个角色,则在登录时,我收到错误:ERR_TOO_MANY_REDIRECTS
模型 admin_user.rb :
require 'role_model'
class AdminUser < ActiveRecord::Base
# Include default devise modules. Others available are:
include RoleModel
roles_attribute :roles_mask
roles :superadmin, :administrator, :cashier, :operator, :accountant
# Relations with Tables
def to_s
self.email
end
end
初始化程序 active_admin.rb :
ActiveAdmin.setup do |config|
config.site_title = "App-1"
config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.authentication_method = :authenticate_active_admin_user!
config.current_user_method = :current_user
config.logout_link_path = :destroy_user_session_path
config.logout_link_method = :delete
config.skip_before_filter :authenticate_admin_user!
# config.authentication_method = :authenticate_admin_user!
# config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.cancan_ability_class = "Ability"
# config.current_user_method = :current_admin_user
config.batch_actions = true
config.localize_format = :long
end
的routes.rb :
Rails.application.routes.draw do
devise_for :users
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
# Other URLS
end
我的配置或路线是否有错误?
抱歉我的英文。