Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails “定义用户角色”;“平静地”;在轨_Ruby On Rails_Rest - Fatal编程技术网

Ruby on rails “定义用户角色”;“平静地”;在轨

Ruby on rails “定义用户角色”;“平静地”;在轨,ruby-on-rails,rest,Ruby On Rails,Rest,我有一个用户资源,它有许多角色 用户应该能够将角色分配给其他用户,例如,管理员应该能够选择其他管理员 以下是资源的良好restful定义吗? POST /roles/ | create a new role definition to: roles#create | DELETE /roles/:role_id | remove a role to: roles#d

我有一个
用户
资源,它有许多
角色

用户应该能够将角色分配给其他用户,例如,管理员应该能够选择其他管理员

以下是资源的良好restful定义吗?

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、Desive、CanCan和Rolify。

就我个人而言,我会让它更简单。我希望所有这些都在
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美元™.