未定义的方法`params_for_resource'

时间:2019-03-27 11:38:41

标签: ruby-on-rails devise activeadmin devise-token-auth

我正在使用devise令牌身份验证gem在Rails 5 Api中登录和注册,并且正在扩展同一个Api,以便能够使用ActiveAdmin创建并运行管理仪表板,并使用Devise对管理员用户进行身份验证。完成了所有中间件和配置的包含,还更改了应用程序控制器以从ActionController::Base继承,并制作了一个从ActionController::API继承的api_controller。 路线也已设定。 但是,由于我使用的是Overrides/registrationssessions控制器,因此我将它们更改为从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_pa​​rameters现在位于ApiController.rb下的app/controllers

我该如何解决并同时使用ActiveAdmin功能和API功能?

0 个答案:

没有答案