Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有与[POST]匹配的路线”/敲打/用户“令牌”;_Ruby On Rails_Ruby_Access Token - Fatal编程技术网

Ruby on rails 没有与[POST]匹配的路线”/敲打/用户“令牌”;

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

我目前正在通过以下链接使用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", "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”,它应该可以工作:)新年快乐:)