gpt4 book ai didi

ruby-on-rails - 如何在中间件中设置 current_user?

转载 作者:行者123 更新时间:2023-12-04 06:31:38 25 4
gpt4 key购买 nike

要为我的问题提供更多背景信息,请参阅此 Github 问题 - https://github.com/getsentry/raven-ruby/issues/144

我正在使用 raven这是一个错误记录器。我想为 current_user 添加 ID如果用户已登录。我收到的答案是

This should be done via your middleware or somewhere similar.



这意味着在 Raven 中设置 current_user。

我已经阅读了有关中间件的信息,但仍然无法弄清楚如何获得 current_user在一个。

最佳答案

对于 Rails 应用程序,我仅在 before_action 中设置 Raven (Sentry) 上下文就成功了。里面 ApplicationController :

# application_controller.rb
class ApplicationController < ActionController::Base
before_action :set_raven_context

def set_raven_context
# I use subdomains in my app, but you could leave this next line out if it's not relevant
context = { account: request.subdomain }
context.merge!({ user_id: current_user.id, email: current_user.email }) unless current_user.blank?
Raven.user_context(context)
end
end

这是因为 raven Rack 中间件在每次请求后都会清除上下文。 See here.然而,它可能不是最有效的,因为即使在大多数不会导致异常的情况下,您也在设置上下文。但无论如何,它并没有那么昂贵的操作,它会让你走得很远,而无需真正需要注入(inject)新的 Rack 中间件或任何东西。

关于ruby-on-rails - 如何在中间件中设置 current_user?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20492687/

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