LoadError (Невозможно автоматически загрузить константу Api::V1::UserTokenController) Knock Gem

Поскольку это новое приложение, я использую бета-версию 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 ответ

Решаемые.

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

Как стучит установщик авто генерируется user_token_controller он не знал о моем пространстве имен маршрутов.

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

class UserTokenController < Knock::AuthTokenController

чтобы:

class Api::V1::UserTokenController < Knock::AuthTokenController
Другие вопросы по тегам