Ruby on rails 没有与[POST]匹配的路线”/敲打/用户“令牌”;
我目前正在通过以下链接使用JWT认证Rails API: 我仔细地听从了她的指示。但是,我仍然无法使用刚刚注册的用户名和密码登录。我可以毫无错误地注册,并向我显示以下消息:Ruby on rails 没有与[POST]匹配的路线”/敲打/用户“令牌”;,ruby-on-rails,ruby,access-token,Ruby On Rails,Ruby,Access Token,我目前正在通过以下链接使用JWT认证Rails API: 我仔细地听从了她的指示。但是,我仍然无法使用刚刚注册的用户名和密码登录。我可以毫无错误地注册,并向我显示以下消息: Started POST "/users" for ::1 at 2016-12-20 22:28:32 -0500 Processing by UsersController#create as HTML Parameters: {"user"=>{"email"=>"xxx@gmail.com", "pa
Started POST "/users" for ::1 at 2016-12-20 22:28:32 -0500
Processing by UsersController#create as HTML
Parameters: {"user"=>{"email"=>"xxx@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}
(0.4ms) BEGIN
SQL (0.8ms) INSERT INTO "users" ("email", "password_digest", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["email", "zsy2053@gmail.com"], ["password_digest", "$2a$10$1UAPAV92l.pHhbT.L3BvfOP7ieuy9yU2cdWdwy9VsVnTHjaRECB0W"], ["created_at", 2016-12-21 03:28:32 UTC], ["updated_at", 2016-12-21 03:28:32 UTC]]
(28.7ms) COMMIT
[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (1.42ms)
Completed 200 OK in 162ms (Views: 21.2ms | ActiveRecord: 34.3ms)
但是,如果我仅使用注册的用户名和密码登录,则会出现此错误:
Started POST "/knock/user_token" for ::1 at 2016-12-20 22:29:02 -0500
ActionController::RoutingError (No route matches [POST] "/knock/user_token"):
这是routes.rb
Rails.application.routes.draw do
resources :cars
get '/users/current-user', to: "current_user#show"
resources :users
mount Knock::Engine => "/knock"
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
这是rake routes | grep knock的输出
knock /knock Knock::Engine
auth_token POST /auth_token(.:format) knock/auth_token#create
下面是routers.rb的配置
Rails.application.routes.draw do
post 'user_token' => 'user_token#create'
resources :cars
get '/users/current-user', to: "current_user#show"
resources :users
mount Knock::Engine => "/knock"
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
我怎样才能解决这个问题呢?好的,我已经阅读了这个gem的文档 默认情况下没有这样的路由。安装此gem时,应为应用程序生成令牌控制器:
rails生成敲打:令牌\u控制器用户
此命令的输出:
create app/controllers/user_token_controller.rb
route post 'user_token' => 'user_token#create'
如您所见,令牌控制器已经创建,并且为其路由。好的,我已经阅读了这个gem的文档 默认情况下没有这样的路由。安装此gem时,应为应用程序生成令牌控制器:
rails生成敲打:令牌\u控制器用户
此命令的输出:
create app/controllers/user_token_controller.rb
route post 'user_token' => 'user_token#create'
如您所见,令牌控制器已创建,并且为其发送了路由。请发布
routes.rb
@31piy已发布。我只是按照她的指示,请发布rake routes | grep knock
@unkmas的输出。请发布routes.rb
@31piy已经发布了。我只是按照她的指示,请发布rake routes | grep knock
@unkmas post的输出。我已经尝试过了,我可以生成令牌控制器。但我得到了同样的结果error@D.Kenny这很奇怪。请添加您的新routes.rb。@D.Kenny现在您有了“/user\u token”路由,同时尝试访问不存在的“/knock/user\u token”。访问“/user\u token”,它应该可以工作:)新年快乐:)我试过了,我可以生成token\u控制器。但我得到了同样的结果error@D.Kenny这很奇怪。请添加您的新routes.rb。@D.Kenny现在您有了“/user\u token”路由,同时尝试访问不存在的“/knock/user\u token”。访问“/user\u token”,它应该可以工作:)新年快乐:)