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

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

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

LoadError (Unable to autoload constant Api::V1::UserTokenController, expected /Users/Simon/Sites/TGD/ginbackend/app/controllers/api/v1/user_token_controller.rb to define it):

Однако у меня есть файл 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
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
886
1

Ответы 1

Решено.

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

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

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

class UserTokenController < Knock::AuthTokenController

к:

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

Другие вопросы по теме