gpt4 book ai didi

ruby-on-rails - 设计:覆盖 current_user(为用户设置不同的类)

转载 作者:数据小太阳 更新时间:2023-10-29 07:35:27 26 4
gpt4 key购买 nike

我想这样做:

应用程序 Controller .rb:

class ApplicationController < ActionController::Base
alias_method :devise_current_user, :current_user

private

def current_user
if params[:user].blank?
puts "!found user"
devise_current_user
else
puts "found user"
user = User.find_by(email: params[:user][:email])
return detect_role(user)
end
end

def detect_role(user)
roles = user.roles_name
user = if roles.include?("mentor")
user.becomes(Mentor)
elsif !roles.include?("admin") && !roles.include?("mentor")
user.becomes(Student)
else
user
end
end
end

但还是没有出去覆盖current_user

日志: https://gist.github.com/anonymous/e0a5fb593b020b16a0cd2ae9d539b92a

最佳答案

这对我有帮助:

class ApplicationController < ActionController::Base
alias_method :devise_current_user, :current_user

private

def current_user
user = if params[:user].blank?
devise_current_user
else
User.find_by(email: params[:user][:email])
end
detect_role(user) if !user.blank?
end

def detect_role(user)
roles = user.roles_name
user = if roles.include?("mentor")
user.becomes(Mentor)
elsif !roles.include?("admin") && !roles.include?("mentor")
user.becomes(Student)
else
user
end
end
end

关于ruby-on-rails - 设计:覆盖 current_user(为用户设置不同的类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46296039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com