我有一个user
资源,其中包含许多roles
。
用户应该能够将角色分配给其他用户,例如管理员应该能够为其他管理员提供服务。
以下是资源的良好宁静定义吗?
POST /roles/ | create a new role definition
to: roles#create |
DELETE /roles/:role_id | remove a role
to: roles#destroy |
GET /roles/ | list roles
to: roles#index
POST /users/:user_id/roles/ | add a new role to user
to: user_roles#create |
DELETE /users/:user_id/roles/:role_id | remove role from user
to: user_roles#create |
GET /users/:user_id/roles/ | list roles assigned to user
我使用的是Rails 4,Devise,CanCan和Rolify。
答案 0 :(得分:1)
就个人而言,我会比这更简单。我希望它都在users
资源下(因此您始终可以访问该用户。
POST /users/:user_id/roles/ | add a new role to user
to: user_roles#create |
DELETE /users/:user_id/roles/:role_id | remove role from user
to: user_roles#delete |
GET /users/:user_id/roles/ | list roles assigned to user
您的/users
路由也可以为所有用户列出角色,因此这不应该是一个问题。
出于安全原因,我会删除或添加一个角色给开发者级别,这就是为什么我甚至都没有这样的路由。但那只是我的0.02美元。