簡體   English   中英

如何使用cancan和devise添加角色rolify?

[英]How do you add roles rolify using cancan and devise?

我知道有很多關於這個問題的問題,但沒有人真正回答我正在尋找的問題。

我正在嘗試使用rolify來定義我在cancan中的角色,我能夠通過rails console創建一個管理員角色並為新用戶設置默認角色。

我的問題是如何將一批角色設置為不同的值並將這些角色分配給某些用戶?

如果您有一個很好的教程來解釋這個過程也會有所幫助,那么截屏視頻會更受歡迎。

謝謝!

你如何創建一批角色?

您可以在db / seeds.rb文件中執行此操作,該文件在每次運行rake db:seed時執行

[:admin, :author, :contact, :user].each do |role|
  Role.find_or_create_by_name({ name: role }, without_protection: true)
end

向某人添加角色就像這樣

@user.add_role :admin

您可以檢查用戶是否具有某個角色

@user.has_role? :admin

而且,正如史蒂夫已經說過的那樣, https://github.com/EppO/rolify文檔可以讓你隨時隨地!

我想你的問題比這更復雜,但簡單的答案是你使用add_role 除了將角色分配給某些角色之外,您無需執行任何操作來創建角色。 因此,如果Jane是全局管理員而Joe是peon,您可以使用:

User.where(name: 'Joe').add_role :peon
User.where(name: 'Jane').add_role :admin

您還可以添加有關特定類或類實例的角色,但上述內容是您問題的最直接答案。 隨着教程的進行,github上的自述文件相當不錯。

我想指出Danny的答案中使用的方法在Rails 4中對我不起作用

我發現的工作是將它放入您的seeds.rb文件中

[:admin, :author, :contact, :user].each do |role|
  Role.where({ name: role }, without_protection: true).first_or_create
end

這似乎是你使用Rails 4為我做的! 這是基於上面這個答案

暫無
暫無

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

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