Устройство ActiveAdmin должно наследоваться от контроллера, отличного от контроллеров API - PullRequest
0 голосов
/ 17 мая 2019

Я создал проект rails api и хотел бы также использовать ActiveAdmin.После того, как я внес изменения для использования ActiveAdmin с проектом API

  1. Пусть ApplicationController наследуется от ActionController :: Base
  2. Создайте ApiController, который наследуется от ActionController: API
  3. Измените parent_controller в моем devise.rb на ApiController

Теперь я больше не могу запустить свой сервер из-за следующей ошибки

activeadmin-2.0.0/lib/active_admin/devise.rb:30:in `block in <module:Controller>': undefined method `layout' for ActiveAdmin::Devise::SessionsController:Class (NoMethodError)

, который вызывается новым родительским контроллером для устройства.Контроллеры ActiveAdmin должны наследоваться от ActionController :: Base .Смена родительского контроллера обратно на ApplicationController Я больше не могу создавать пользователей через API, потому что RegistrationsController пытается отобразить new_session_path

#<ActionView::Template::Error: undefined method `new_api_v1_user_session_path' for #<ActionDispatch::Routing::RoutesProxy:0x00007f42b0345450>>"

Thisвызвано возвращением родительского контроллера в ApplicationController :: Base.Я хотел бы, чтобы контроллеры ActiveAdmin Devise унаследовали от ApplicationController и мои обычные контроллеры Devise от ApiController

Как мне этого добиться?

...