我理解CanCan的相当基本的工作方式,并尝试遵循一些教程,但没有一个真正讨论如何在我的应用程序中分配用户角色。
此外,我希望我的应用程序允许用户将角色分配给其他用户。例如,我的用户可以创建项目,并将其他用户分配给项目团队。我目前正在使用角色模型来保留我的用户角色。
如何让用户专门将其他用户设置为该项目团队角色,他们可以在哪里管理项目?
答案 0 :(得分:2)
您可以使用包含can_manage_projects
等字段的模型class User < ActiveRecord::Base
has_many :roles
field :can_manage_projects, type: boolean
end
根据你的能力,你设置了一个许可通讯员......
class Ability
def initialize(user)
can :manage Project if user.can_manage_project?
end
end
因此,您可以随时使用该权限,例如:
class ProjectController
def assign_user(project, user)
project.users << user if can? :manage, Project
end
end
或
<body>
<% if can? :manage, Project %>
<%= link_to 'Assign selected user to Project', assign_user_project_path(project, user) %>
<% end %>
</body>