Where to override current_user helper method of devise gem

前端 未结 4 1784
耶瑟儿~
耶瑟儿~ 2020-12-13 00:31

How can i override current_user of devise gem. Actually I need to add web services for mobile-app.

Currently devise is managing session and \'current_

4条回答
  •  被撕碎了的回忆
    2020-12-13 01:27

    According to the module Devise::Controllers::Helpers, current_user (together with all other devise helpers) is added to ApplicationController, which means that you can override it in this way:

    # in application_controller.rb
    
    def devise_current_user
      @devise_current_user ||= warden.authenticate(scope: :user)
    end
    
    def current_user
      if params[:user_id].blank?
        devise_current_user
      else
        User.find(params[:user_id])
      end   
    end
    

提交回复
热议问题