无法使用 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 集群中启动