没有路线匹配?
No route matches?
我在我的一个测试(并从命令行使用 curl)中的一个路径(POST /users/confirm)中遇到 "No route matches" 异常。我试过的 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
...
这是我的用户 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 }
,则会出现以下错误:
不知所措。有什么想法吗?
事实证明我根本不需要 :token 在我的路线中。改成这样,一切正常:
post '/appname/users/confirm/',至:'users#confirm',如:'appname_users_confirm'
我在我的一个测试(并从命令行使用 curl)中的一个路径(POST /users/confirm)中遇到 "No route matches" 异常。我试过的 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
...
这是我的用户 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 }
,则会出现以下错误:
不知所措。有什么想法吗?
事实证明我根本不需要 :token 在我的路线中。改成这样,一切正常:
post '/appname/users/confirm/',至:'users#confirm',如:'appname_users_confirm'