作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 pg_audit_log 登录 Rails 应用程序。审核日志不仅要显示已更改的列,还必须显示进行这些更改的用户。文档没有显示如何执行此操作,但在查看 pg_audit_log 源代码 (postgresql_adapter.rb) 后,我看到它从线程局部变量 ala 中读取用户信息:
current_user = Thread.current[:current_user]
我考虑过像这样在过滤器之前和之后设置/取消设置它:
Thread.current[:current_user] = current_user
(在 Controller 中使用 current_user 辅助方法来获取当前登录的用户),但这看起来很危险。我现在正花时间尝试了解 Rails 请求周期和线程如何交互,以便更好地了解危险程度。同时,我很好奇当前使用 pg_audit_log 的任何 SO 用户是否已经解决了每次用户对记录进行更改时将 user_id 和 user_unique_name 记录到日志表的需要。
最佳答案
按照您描述的方式设置当前用户是一种常见的方法。参见,例如,http://rails-bestpractices.com/posts/47-fetch-current-user-in-models
一些示例代码可能如下所示:
# in your model
class User < ActiveRecord::Base
def self.current
Thread.current[:current_user]
end
def self.current=(user)
Thread.current[:current_user] = user if user.nil? || user.is_a?(User)
end
end
# in your controller
class ApplicationController < ActionController::Base
before_filter :set_current_user
def set_current_user
User.current = user_signed_in? ? current_user : nil
end
end
关于ruby-on-rails - 在 pg_audit_log 中设置 current_user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14163571/
我想使用 pg_audit_log 登录 Rails 应用程序。审核日志不仅要显示已更改的列,还必须显示进行这些更改的用户。文档没有显示如何执行此操作,但在查看 pg_audit_log 源代码 (p
我是一名优秀的程序员,十分优秀!