无法使用 PaperTrail gem 记录关联的审核日志

Posted

技术标签:

【中文标题】无法使用 PaperTrail gem 记录关联的审核日志【英文标题】:Unable to record audit log for associations using PaperTrail gem 【发布时间】:2018-12-17 12:05:13 【问题描述】:

用户与 user_favourite_locations 和 preferred_locations 有关系。我的用户模型代码:

class User < ApplicationRecord
    has_many :preferred_locations, through: :user_favourite_locations
    has_many :user_favourite_locations
    has_paper_trail class_name: 'UserVersion',
                  only: [ :fb_uid, :favourite_location_ids ],
                  meta: business_id: Proc.new|o| o.business_id ,
                  on: [:update, :destroy]
end

【问题讨论】:

使用“_ids”字段是rails中的一个棘手部分。你必须检查ids_writer 并找到他们在它发生变化时挂钩它的方法:github.com/rails/rails/blob/… 目前在 Rails 核心中没有其他方法。这是问题之一,尤其是当您使用单数/集合时,它们之间存在许多差异。 您可能还对github.com/westonganger/paper_trail-association_tracking感兴趣 【参考方案1】:

此 gem 不支持关联对象数据日志功能

【讨论】:

以上是关于无法使用 PaperTrail gem 记录关联的审核日志的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有 has_many 的 PaperTrail 版本控制:通过在 Rails 4 中实现关联

Rails:在生产环境中配置记录器以使用 Papertrail

当 Heroku Papertrail 日志记录达到每日 10 MB 的限制时会发生啥?

papertrail 的 fluentd 守护程序集容器无法在 kubernetes 集群中启动

手动安装“papertrail/remote_syslog2”,找不到可执行文件

(Rails)PaperTrail和RSpec