使用Deviate管理用户会话/注册,每次用户登录时,以及在Deviate将其重定向到已连接用户的主页之前,我都需要执行特定任务(例如,为该特定用户更新用户表中的某些字段).

我必须覆盖Desive SessionsController吗?如果是,如何覆盖?

推荐答案

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

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"}

Ruby-on-rails相关问答推荐

Rails 7通过引擎将方法自动加载到控制器中的方法

Ruby线程使用互斥处理并发问题

HTTP:MimeNegotiation::InvalidType(html不是有效的MIME类型):""

GO AES GCM加密在解密时出错&S

Web控制台不会出现在例外页面Rails 7.1.1上

如何在 JR gem 中指定每个资源的最大页面大小配置

尽管安装并需要 pry-rails gem,但 Rails 容器内出现未定义方法‘pry’错误

为什么总是有东西在我的 mac 上的 5000 端口运行

正确更新其他列的更新列

Rails - 设计 - 登录时出现错误消息?

rails, activerecord, 获取当前连接规范

HABTM 关系 - 如何根据关联模型的属性找到记录

Rails - 生产模式下的错误

如何在 Rails 中验证日期以使其在今天之后?

Rails 引擎中的迁移?

在 Rails 协会中未找到名为的协会可能拼写错误的问题

Coffeescript ||= 模拟?

Rails 3:乘客找不到Bundle 程序安装的 git gem

如何为 Rails 迁移定义布尔字段

如何在 Rails 表单中将复选框和标签保持在同一行?