2014-01-05 60 views
5

我得知這個問題上有很多問題,但沒有人真正回答我在找什麼。如何使用cancan和devise添加角色rolify?

我正在嘗試使用rolify在cancan中定義我的角色,我能夠通過rails控制檯創建管理員角色併爲新用戶設置默認角色。

我的問題是如何設置一個批次的角色,以不同的價值觀和分配這些角色給某些用戶?

如果你有一個很好的教程,說明這個過程中,這將有助於爲好,截屏首選。

的感謝!

回答

10

如何創建一個批處理的角色?

您可以在DB/seeds.rb文件,該文件每次執行這樣做你運行耙分貝:種子

[: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 documen一定的作用應該讓你動起來!

+0

這正是我想要的,謝謝! –

1

我想你的問題比這個更復雜,但簡單的答案是你使用add_role。除了將它們分配給某些東西外,您不需要做任何事情來創建角色。所以,如果簡是全球範圍內的管理和喬是一個苦工,你可以只使用:

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

您也可以針對特定的類或類的實例添加角色,但以上是最直接回答你題。在教程中,github上的README相當不錯。

1

我想指出的是,在丹尼的回答所用的方法不Rails中4

我找到工作什麼工作對我來說是把這個到您的seeds.rb文件

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

這似乎是你使用Rails 4所要求的!這是基於這個答案above

相關問題