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)