加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rolify和CanCan有什么意义?

发布时间:2020-12-17 02:46:46 所属栏目:百科 来源:网络整理
导读:我正在研究一个RoR项目,我对这个为我的目的推荐的新宝石有点困惑,Rolify.据我了解,rolify与CanCan几乎完全相同,只不过它将能力(rolify的角色)持久化到数据库.但是,在整个Rolify维基上,我看到了使用Rolify和CanCan的说明. 所以基本上,我想知道Rolify和CanCan
我正在研究一个RoR项目,我对这个为我的目的推荐的新宝石有点困惑,Rolify.据我了解,rolify与CanCan几乎完全相同,只不过它将能力(rolify的角色)持久化到数据库.但是,在整个Rolify维基上,我看到了使用Rolify和CanCan的说明.

所以基本上,我想知道Rolify和CanCan之间的区别是什么?我什么时候应该使用那个而不是另一个?

解决方法

CanCan用于从应用程序角度管理授权,可以让您将X控制器/操作限制为X用户.

当你想深入细致的控制时,你可以使用Rolify. Rolify,超越简单

if user.role == :super_admin
  # do something pretty cool stuff
elsif user.role == :admin
  # do some more awesome stuff

允许您向资源添加角色.假设您有一个论坛应用程序,您希望用户能够在游戏板上拥有主持人角色.你会使用rolify来

user = User.find(2)
user.add_role :moderator,Forum.where(type: 'Gaming')

Rolify还允许您通过使用类本身而不是实例(如果您希望用户成为所有板的主持人)来对类执行此操作

user = User.find(2)
user.add_role :moderator,Forum

之后,它可以让您轻松查询资源/类,以找出谁可以访问什么.除了帮助您管理角色范围之外.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读