在rails中“restfully”定义用户角色

时间:2013-11-25 15:14:47

标签: ruby-on-rails rest

我有一个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。

1 个答案:

答案 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美元。