如何使用CanCan实现动态授权?

时间:2012-10-22 05:16:19

标签: ruby-on-rails-3 devise cancan

我正在关注本教程http://eveloverails.wordpress.com/2011/04/02/183/。我已经通过设计创建了用户,我希望当用户以管理员身份登录时,他应该拥有用户列表,可以在其中编辑用户的权限,例如edit destroy等。

提前致谢

1 个答案:

答案 0 :(得分:-1)

您可以在设计模型调用角色中添加一个字段。然后在模型中创建cancan能力等级,然后定义您的授权,如

class Ability
  include CanCan::Ability

  def initialize(user)
  # Define abilities for the passed in user here. For example:
     user ||= Login.new # guest user (not logged in)
     if user.role == 'admin'
       can :manage, :all
     else
       can :read, :all
     end
  end
end 

有关详细信息,请参阅维基:https://github.com/ryanb/cancan/wiki/Defining-Abilities