首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails -如何覆盖devise SessionsController以在用户登录时执行特定任务?

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

Stack Overflow用户
提问于 2012-12-12 16:59:41
回答 3查看 47.6K关注 0票数 46

使用Devise管理用户会话/注册时,我需要在每次用户登录时执行特定的任务(例如,为该特定用户更新users表中的一些字段),并且在devise将他重定向到连接用户的主页之前。

我必须重写devise SessionsController吗?如果是,如何重写?

EN

Stack Overflow用户

回答已采纳

发布于 2012-12-12 18:39:51

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

代码语言:javascript
运行
复制
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中添加:

代码语言:javascript
运行
复制
devise_for :users, controllers: {sessions: "sessions"}
票数 70
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13836139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档