LoadError (Невозможно автоматически загрузить константу Api :: V1 :: UserTokenController) Knock Gem - PullRequest
0 голосов
/ 08 февраля 2019

Поскольку это новое приложение, я использую бета-версию Rails 6.

Я пытаюсь использовать Knock Gem, но при попытке получить ответ API от публикации пользователя я получаю этоошибка:

LoadError (Невозможно автоматически загрузить константу Api :: V1 :: UserTokenController, ожидается /Users/Simon/Sites/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 голосов
/ 10 февраля 2019

Решено.

Все в деталях (как всегда).

Поскольку программа установки стука автоматически сгенерировала user_token_controller, она не знала о моем пространстве имен маршрутов.

Итак, я изменил:

class UserTokenController < Knock::AuthTokenController

на:

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