因为这是一个全新的应用程序,所以我正在使用Rails 6 beta。
我正在尝试使用Knock Gem,但是尝试从发布用户获取API响应时出现此错误:
LoadError(无法自动加载常量Api :: V1 :: UserTokenController, 预期 /用户/西蒙/站点/TGD/ginbackend/app/controllers/api/v1/user_token_controller.rb 进行定义):
但是,我确实在该位置有user_token_controller.rb
个文件。我正在为API端点使用名称空间:
Rails.application.routes.draw do
namespace :api do
namespace :v1 do
post 'user_token' => 'user_token#create' # <= manually placed this under the namespace
resources :distilleries
resources :botanicals
resources :gins
resources :botanicals_gins
end
end
end
根据Knock文档,我还更新了application_controller.rb
,请注意,该文件位于app/controllers/
而不是app/controllers/api/v1
这是问题吗?
class ApplicationController < ActionController::API
include Knock::Authenticable
private
def authenticate_v1_user
authenticate_for V1::User
end
end
答案 0 :(得分:0)
已解决。
细节一如既往。
当敲门安装程序自动生成user_token_controller
时,它不知道我的路线名称空间。
所以我改变了:
class UserTokenController < Knock::AuthTokenController
收件人:
class Api::V1::UserTokenController < Knock::AuthTokenController