Rolify和CanCan有什么意义?

迪伦·卡尔(Dylan Karr)

我正在从事RoR项目,对这个为我的目的而推荐的新宝石Rolify感到有些困惑。据我了解,rolify与CanCan几乎具有相同的功能,除了它将功能(用于rolify的角色)保留在数据库中。但是,在整个Rolify Wiki上,我看到有关在CanCan中使用Rolify的说明。

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

Gotjosh

从应用程序的角度来看,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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Debian和Ubuntu有什么意义?

来自分类Dev

如何通过设计,cancan和rolify为用户分配角色?

来自分类Dev

如何通过设计,cancan和rolify为用户分配角色?

来自分类Dev

硫化,有什么意义?

来自分类Dev

FOSUserBundle:有什么意义?

来自分类Dev

有什么意义?

来自分类Dev

FOSUserBundle:有什么意义?

来自分类Dev

同源政策和CORS-有什么意义?

来自分类Dev

在本地存储中存储JS和CSS有什么意义?

来自分类Dev

JPA和一级缓存,有什么意义?

来自分类Dev

同时创建AbstractStringBuilder和StringBuilder有什么意义?

来自分类Dev

JPA和一级缓存,有什么意义?

来自分类Dev

在C ++中使用引用和指针有什么意义?

来自分类Dev

使用队列而不是主题和订阅有什么意义吗?

来自分类Dev

Cancan rolify:根据角色定义资源的能力

来自分类Dev

数据属性有什么意义?

来自分类Dev

BigInteger :: intValueExact()-有什么意义?

来自分类Dev

使用tee有什么意义?

来自分类Dev

if let语句有什么意义?

来自分类Dev

is_null()有什么意义?

来自分类Dev

mapDispatchToProps:有什么意义吗?

来自分类Dev

超时元组有什么意义?

来自分类Dev

更新Joomla有什么意义?

来自分类Dev

MSStream-有什么意义?

来自分类Dev

sass @extend有什么意义?

来自分类Dev

arp -g有什么意义?

来自分类Dev

编辑会话有什么意义?

来自分类Dev

使用tee有什么意义?

来自分类Dev

在Python中,“ x或False”和“ False和x”有什么意义?