目前我正在使用Devise& CanCan允许我创建 具有角色的用户使用(Roles_Users)表。
这很好,但我想要的是在我的应用程序中使用项目 每个项目,用户可能有一个角色(管理员,查看者, 等)IE,角色不是基于他们所属的项目分配给用户而是分配给用户。
示例:
什么样的模型适用于此?
模特
用户 has_many:项目 项目 ? 角色 ?
Users_Roles_Projects(user_id,project_id,role_id)
你怎么看?我是新手,可以使用理解和 从你这里思考经验丰富的人。谢谢!答案 0 :(得分:1)
你应该看看has_many:through。这个Railscast应该可以启动并运行:http://railscasts.com/episodes/47-two-many-to-many
例如,您可以通过会员资格获得用户has_many项目(我确信您可以提供更好的名称!)
您的用户模型将包含标准用户详细信息,项目模型将包含项目详细信息,并且可能您在某处有一些角色模型(我没有使用您提到的任何一个库,因此我无法对其进行评论他们是如何工作的)。关键是会员制模式。
成员资格模型将包含userID,projectID和roleID。在数据库中,应该只有任何给定userID和projectID配对的一个实例,因此通过在此配对旁边存储roleID,您可以将角色分配给指定项目上的该用户。