неопределенный метод `params_for_resource ' - PullRequest
0 голосов
/ 27 марта 2019

Я использую 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?

...