【发布时间】:2013-01-04 19:26:21
【问题描述】:
我想使用 pg_audit_log 来登录 Rails 应用程序。审核日志不仅必须显示已更改的列,还必须显示进行这些更改的用户。文档没有显示如何执行此操作,但在查看 pg_audit_log 源 (postgresql_adapter.rb) 后,我看到它从线程局部变量读取用户信息,ala:
current_user = Thread.current[:current_user]
我考虑过在过滤器前后设置/取消设置,如下所示:
Thread.current[:current_user] = current_user
(使用控制器中的 current_user 辅助方法来获取当前登录的用户),但这似乎很危险。我现在花时间尝试了解 Rails 请求周期和线程如何交互,以便更好地了解危险程度。同时,我很好奇当前使用 pg_audit_log 的任何 SO 用户是否已经解决了每次用户对记录进行更改时将 user_id 和 user_unique_name 记录到日志表的需要。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 logging