Я использую gem devise token auth для входа и регистрации в rails 5 Api, и я расширяю тот же Api, чтобы иметь возможность использовать ActiveAdmin для создания и работы панели администратора, которая использует Devise для аутентификации пользователей-администраторов.Включено все промежуточное программное обеспечение и конфигурация, а также изменен контроллер приложения для наследования от ActionController::Base
и создан api_controller, который наследуется от ActionController::API
.Маршруты тоже установлены .. Но так как я использую Overrides/registrations
и sessions
контроллер, я изменил их для наследования от class SessionsController < DeviseTokenAuth::ApiController
и при попытке Api войти или зарегистрироваться с помощью параметров я получаю ошибку: -
Undefined method `params_for_resource' for #<Api::V1::Overrides::RegistrationsController>
Код в контроллере регистрации, где отображается ошибка: - 1)
def sign_up_params
params.permit(*params_for_resource(:sign_up))
end
2)
def validate_sign_up_params
validate_post_data sign_up_params,
I18n.t('errors.messages.validate_sign_up_params')
end
Routes.rb (в случае необходимости): -
Rails.application.routes.draw do
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
namespace :api do
scope :v1 do
mount_devise_token_auth_for 'User', at: 'auth', controllers: {
sessions: 'api/v1/overrides/sessions',
registrations: 'api/v1/overrides/registrations'
}
end
namespace :v1 do
resources :users
end
end
end
configure_permitted_parameters теперь находится в ApiController.rb
, расположенном в app/controllers
Как мне обойти это и использовать как функции ActiveAdmin, так и мои функции API?