LoadError(无法自动加载常量Api :: V1 :: UserTokenController)敲Gem

时间:2019-02-08 09:41:01

标签: ruby-on-rails authentication ruby-on-rails-6

因为这是一个全新的应用程序,所以我正在使用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

1 个答案:

答案 0 :(得分:0)

已解决。

细节一如既往。

当敲门安装程序自动生成user_token_controller时,它不知道我的路线名称空间。

所以我改变了:

class UserTokenController < Knock::AuthTokenController

收件人:

class Api::V1::UserTokenController < Knock::AuthTokenController