从模型中注销设计用户

时间:2016-01-21 13:07:58

标签: ruby-on-rails devise

在我的应用程序中,我需要不时签署特定用户。我需要从界面或sidekiq工作者那里做到这一点。所以我想在sign_out模型中创建一个user方法。

我在文档中看到,设计提供了sign_out方法,但只在控制器中提供。有没有办法从模型或类似的东西访问此方法。

由于

1 个答案:

答案 0 :(得分:4)

您需要先阅读此答案https://stackoverflow.com/a/24388643/4269732

如果我要实现此行为,那么我会在用户模型中添加一个列,如expire_at_next_request? 然后只需检查before_filter中的这个值,如果这是真的,则注销用户。

class ApplicationController < ActionController::Base
  before_filter :logout_if_requested

  def logout_if_requested
    if current_user && current_user.expire_at_next_request?
      current_user.update_attributes(:expire_at_next_request=>false)
      sign_out current_user
      redirect_to :new_session_path
    end
  end