当我有一个用户和一个单独的管理员时,如何使用CanCan进行授权

时间:2014-01-11 21:49:50

标签: ruby-on-rails authorization cancan

我的应用程序使用不同的模型来管理用户和管理员。使用CanCan为每个模型实现授权的最佳方法是什么?

1 个答案:

答案 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