我有这个: ability.rb
def initialize(user)
if user.admin?
can :manage, :all
else
can :manage, AdminUser, :id => user.id
end
end
并在application_controller.rb中:
def access_denied(exception)
redirect_to admin_dashboard_path , :alert => exception.message
end
此外,我已在intializer / active_admin.rb中添加了适用于活动管理员的适配器:
config.authentication_method = :authenticate_admin_user!
config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.on_unauthorized_access = :access_denied
当我走到他未被授权的这个网址时(例如:http://admin.localhost.com:3000/admin/admin_users/1)。它给出错误:
ActiveRecord::RecordNotFound in Admin::AdminUsersController#show
任何人都可以指出我正确的方向,因为我在这里失踪了。
提前致谢。
答案 0 :(得分:0)
当Active Record无法按给定ID或一组id查找记录时,会引发错误。请检查admin_users表中是否有id为1的条目。请参阅下图以更好地理解错误。
答案 1 :(得分:0)
我已经通过将active_admin gem升级到gem' activeadmin' 0.6.3'来解决了这个问题。