且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Rails - 如何在用户登录时覆盖设计 SessionsController 以执行特定任务?

更新时间:2023-09-28 18:40:04

或者,您可以创建自己的会话控制器

Alternatively, you can create your own sessions controller

class SessionsController < Devise::SessionsController
  def new
    super
  end

  def create
    self.resource = warden.authenticate!(auth_options)
    set_flash_message(:notice, :signed_in) if is_navigational_format?
    sign_in(resource_name, resource)
    if !session[:return_to].blank?
      redirect_to session[:return_to]
      session[:return_to] = nil
    else
      respond_with resource, :location => after_sign_in_path_for(resource)
    end
  end
end

并在 routes.rb 中添加:

devise_for :users, controllers: {sessions: "sessions"}

推荐文章