我想知道如何定义一个能力类并根据已登录的用户为该能力类服务。
我正在使用 Active Admin、Can Can 和 Devise,并且我已经成功创建了一个 User 和一个 AdminUser 模型。
我有这个能力.rb
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if (user)
can :manage, Item
end
end
end
现在我已经使用这个 wiki 条目来确定我们确实可以定义一个自定义能力文件并使用它来代替ability.rb:
https://github.com/ryanb/cancan/wiki/changeing-defaults
但我想要做的是,如果“非管理员用户”已登录,则能够使用 ability.rb,如果用户管理员已登录,则能够使用自定义 abilty。
附带问题:是否可以这样做,以便我不需要自定义的并且可以在一个ability.rb 文件中设置权限?