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