【发布时间】:2018-07-29 06:19:15
【问题描述】:
我在 ActiveAdmin 中使用 Cancancan 进行授权。 除了 :create 一切正常。创建新管理员时,cancancan 会检查 admin_user.id = id。但是,ActiveAdmin 使 id = nil,所以我无法创建新管理员。
include CanCan::Ability
def initialize(admin_user)
can :manage, AdminUser, id: admin_user.id
....
end
end
我的解决方案是每个人都可以跳过创建授权。 我的应用程序控制器:
class ApplicationController < ActionController::Base
load_and_authorize_resource
skip_authorize_resource :only => :new
end
但它什么也没做。请帮忙!
【问题讨论】:
-
每个人都可以跳过创建授权所以每个人都可以创建管理员?如果每个人都可以创建管理员,管理员的目的是什么?
-
还有
new不是create这是两个不同的动作。 -
在我的项目中,admin 被视为普通用户。对困惑感到抱歉。我尝试了“新”和“创建”,但没有任何效果。
-
那么您希望谁能够创建管理员用户?
-
是的,在我的项目中,现在只有一种类型的用户(管理员),我希望每个人都可以创建他们想要的任何东西。 (创建新管理员,创建新帖子,..)
标签: ruby-on-rails ruby activeadmin cancancan