У меня есть приложение rails, которое использует Devise для аутентификации и прекрасно работает в браузере. Я хочу настроить его так, чтобы он взаимодействовал с приложением Android, которое я создаю. Я пытаюсь переопределить стандартный ответ JSON, чтобы он возвращал маркер аутентификации, который мне нужен для входа.
Эта проблема, кажется, решена в этом вопросе, и я пытаюсь ее адаптировать.
С помощью токенов Devise для входа это встроено?
Я указал следующий конфиг / инициализаторы / devise.rb:
config.token_authentication_key = :auth_token
Я изменил свой файл маршрутов, чтобы он выглядел так:
devise_for: менеджеры,: контроллеры => {: сеансы => "Менеджеры / сеансы"}
А потом я создал файл session_controller.rb со следующим:
class Managers::SessionsController < Devise::SessionsController
def create
resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
respond_to do |format|
format.html do
respond_with resource, :location => redirect_location(resource_name, resource)
end
format.json do
render :json => { :response => 'ok', :auth_token => current_user.authentication_token }.to_json, :status => :ok
end
end
end
end
Однако, когда я пытаюсь запустить приложение, я получаю следующую ошибку:
Ошибка маршрутизации
неинициализированная константа менеджеров
Что вызывает эту ошибку? Любые предложения о том, как исправить это, чтобы я все еще мог войти через JSON?
Заранее спасибо за помощь!
Antony