簡體   English   中英

Rolify和CanCan有什么意義?

[英]What's the point of Rolify and 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

之后,它可以讓您輕松查詢資源/類,以找出誰可以訪問什么。 除了幫助您管理角色范圍之外。

CanCan是一個授權庫,允許您設置有關誰可以執行或不執行某些操作的規則。

Rolify是一個角色庫,可幫助您創建可在Cancan授權規則中使用的角色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM