我的应用程序使用不同的模型来管理用户和管理员。使用CanCan为每个模型实现授权的最佳方法是什么?
答案 0 :(得分:1)
您需要在cancan功能文件中测试用于授权的对象类型。
如下所示:
class Ability
include CanCan::Ability
def initialize(user_or_admin)
case user_or_admin.class.name
when 'User'
can :read, :post
when 'Admin'
can :manage, :all
else
user = User.new # guest user
# ... other permissions for guests
end
end
end