Ruby on rails 如何让特定用户(不是当前用户)在rails Desive网站上注销?

Ruby on rails 如何让特定用户(不是当前用户)在rails Desive网站上注销?,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我想知道如何让特定用户(不是当前用户)注销 我看到了这个,并编写了这个代码 def kick_admin user = User.find params[:user_id] user.admin = false user.save sign_out user #want to kick him. end 但它不会让该用户注销,而是让我(当前用户)注销。 使用注销方法的正确方法是什么 我检查了这个答案(),但没有任何帮助。可以这样做的一种方法是在用户表中创建一个新属性,称之为f

我想知道如何让特定用户(不是当前用户)注销

我看到了这个,并编写了这个代码

def kick_admin
  user = User.find params[:user_id]
  user.admin = false
  user.save
  sign_out user #want to kick him. 
end
但它不会让该用户注销,而是让我(当前用户)注销。 使用注销方法的正确方法是什么


我检查了这个答案(),但没有任何帮助。

可以这样做的一种方法是在用户表中创建一个新属性,称之为
force\u sign\u

def kick_admin
  user = User.find params[:user_id]
  user.update_attributes(admin: false, force_sign_out: true)
end
并在ApplicationController中设置一个before操作,这样,如果用户尝试任何活动,他都已注销

class ApplicationController < ActionController::Base

  before_action :check_if_force_sign_out

  def check_if_force_sign_out
    return unless current_user.force_sign_out
    current_user.update_attributes(force_sign_out: false) # reset for non-admin log in
    sign_out
    redirect_to root_path
  end

end
class ApplicationController
正准备发布类似的内容。很好的解决方案!可能会改进kick-
用户。更新属性(admin:false,force\u sign\u out:true)