Active Admin可以在Admin :: AdminUsersController#show中扫描ActiveRecord :: RecordNotFound

时间:2014-10-28 14:21:00

标签: ruby-on-rails activeadmin cancan

我有这个:     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

任何人都可以指出我正确的方向,因为我在这里失踪了。

提前致谢。

2 个答案:

答案 0 :(得分:0)

当Active Record无法按给定ID或一组id查找记录时,会引发错误。请检查admin_users表中是否有id为1的条目。请参阅下图以更好地理解错误。

enter image description here

答案 1 :(得分:0)

我已经通过将active_admin gem升级到gem' activeadmin' 0.6.3'来解决了这个问题。