代码之家  ›  专栏  ›  技术社区  ›  Simon Cooper

LoadError(无法自动加载常量Api::V1::UserTokenController)错误

  •  1
  • Simon Cooper  · 技术社区  · 6 年前

    因为这是一个全新的应用程序,所以我使用的是rails6beta。

    我正在尝试使用Knock Gem,但是当尝试从发布用户获得API响应时,我得到以下错误:

    LoadError(无法自动加载常量Api::V1::UserTokenController, /Users/Simon/Sites/TGD/ginbackend/app/controllers/api/v1/user\u令牌_控制器.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
    

    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 回复  |  直到 6 年前
        1
  •  2
  •   Simon Cooper    6 年前

    解决了的。

    因为爆震安装程序自动生成 user_token_controller 它不知道我的名字空间。

    class UserTokenController < Knock::AuthTokenController
    

    收件人:

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