在我的应用程序中,我需要不时签署特定用户。我需要从界面或sidekiq工作者那里做到这一点。所以我想在sign_out
模型中创建一个user
方法。
我在文档中看到,设计提供了sign_out
方法,但只在控制器中提供。有没有办法从模型或类似的东西访问此方法。
由于
答案 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