没有路线匹配?

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'