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