我正在使用Knock进行Rails 5 API的JWT身份验证。
我有这个Routes文件:
Rails.application.routes.draw do
namespace :api, constraints: { subdomain: 'api' }, path: '/' do
namespace :v1 do
post 'user_token' => 'user_token#create'
end
end
end
有了这个,我希望能够发出一个POST请求来创建这样的新令牌:
但是这个请求给了我以下错误:
NameError:未初始化的常量API :: V1 :: User
我能理解的是,Knock正试图在控制器(User
)所在的同一命名空间上访问模型user_token_controller
。但我的模型不是命名空间:
class User < ApplicationRecord
has_secure_password
#...
end
我的user_token_controller.rb
module API
module V1
class UserTokenController < Knock::AuthTokenController
end
end
end
我错了什么?
答案 0 :(得分:0)
这是一个已经fixed但尚未发布的错误。
临时解决方案是使用github代码中的gem,如:
gem&#39; knock&#39;,github:&#39; psantos10 / knock&#39;,branch:&#39; master&#39;