我知道有很多关于这个问题的问题,但没有人真正回答我正在寻找的问题 .
我正在尝试使用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,您可以使用:
add_role
User.where(name: 'Joe').add_role :peon User.where(name: 'Jane').add_role :admin
您还可以添加有关特定类或类实例的角色,但上述内容是您问题的最直接答案 . 随着教程的进行,github上的README非常不错 .
我想指出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为我做的!这是基于这个答案above
3 回答
你如何创建一批角色?
您可以在db / seeds.rb文件中执行此操作,该文件在每次运行rake db:seed时执行
向某人添加角色就像这样
您可以检查用户是否具有某个角色
并且,正如史蒂夫已经说过的那样,https://github.com/EppO/rolify文档应该让你一动不动!
我想你的问题比这更复杂,但简单的答案是你使用
add_role
. 除了将角色分配给某些角色之外,您无需执行任何操作来创建角色 . 因此,如果Jane是全局管理员而Joe是peon,您可以使用:您还可以添加有关特定类或类实例的角色,但上述内容是您问题的最直接答案 . 随着教程的进行,github上的README非常不错 .
我想指出Danny的答案中使用的方法在Rails 4中对我不起作用
我发现的工作是将它放入您的seeds.rb文件中
这似乎是你使用Rails 4为我做的!这是基于这个答案above