【发布时间】:2017-10-04 13:18:42
【问题描述】:
在我的一项测试(并从命令行使用 curl)我的一条路由(POST /users/confirm)中遇到“无路由匹配”异常。我尝试过的 curl 如下,它们都不起作用并且收到以下注释中列出的相同异常:
curl -X POST -H "Content-Type: application/json; version=1" \
-d '{ user: { "token":"1deb36b4e6a7ba6d9203" } }' \
http://localhost:3000/appname/users/confirm
curl -X POST -H "Content-Type: application/json; version=1" \
-d '{ "token":"1deb36b4e6a7ba6d9203" }' \
http://localhost:3000/appname/users/confirm
我的测试如下。我的 /config/application.rb 文件中有config.wrap_parameters = true...
这是我的 User UsersController#confirm 操作以及我的强大参数。我params.require(:user).permit(:token) 而不是简单的params.permit(:token) 因为如上所述,我的/config/application.rb 文件中有config.wrap_parameters = true...
这是我的路线条目...
这是rails routes 的输出(应用名称已删除)...
我的 /config/application.rb 文件中有 config.wrap_parameters = true...
奇怪的是,如果我将测试中的参数更改为 post :confirm, params: { token: @user.confirmation_token },则会收到以下错误:
不知所措。有什么想法吗?
【问题讨论】:
-
根据
rails routes的结果,你的路径不完整。它期望在/confirm之后有一些东西。例如,/confirm/username将是一个有效的路由。 -
请不要发布图片,发布实际文字。
-
@Зелёный 6 和 1/2 打到另一个。有些人喜欢图像。希兹。
-
@YawBoakye 谢谢你,看来我毕竟不需要 :token 参数,你帮了我的忙,而不是担心我发布图片。
标签: ruby-on-rails rspec rspec-rails rails-routing rails-api