【发布时间】:2016-09-27 20:01:09
【问题描述】:
过去我使用 HTML 表单来更新设计用户,但现在我有一个带有用于身份验证的设计的 Rails 4 应用程序,我希望能够使用 RestClient/CURL 从远程控制我的用户。我很惊讶地看到设计用户路由并注意到没有 /users/:id 路由(没有 GET,尤其是没有 PUT)。
我希望能够发出这样的命令:
curl -H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-X PUT http://localhost:3000/users/18232 \
-d '{ "user": { "email": "updated_email@gmail.com", "currrent_password": "password" }}' \
-u admin@gmail.com:password
如果我没有在 URL 路径中提供用户 ID,那么这个请求将会成功,但它会更新管理员的电子邮件 - 这不是我想要的。如果有不同的方法来指定我需要更新的用户(在数据哈希中提供 id 将不起作用),那将是很好的......即使这会打破 RESTful 路由设计标准。
【问题讨论】:
-
如何创建自己的控制器+逻辑
-
您不应该在应用程序 routes.rb 中添加“resources :users”以使 /users/:id 正常工作吗?
-
如果找不到任何现有的解决方案,我想我需要自己编写。而且,我想我可以将“资源:用户”添加到路线中,但是“设计”的做事方式是什么?在这种情况下,路由将转到另一个控制器,否则我将不得不覆盖设计注册控制器。我浏览了代码,但我不明白所有内容。
标签: ruby-on-rails ruby-on-rails-4 devise