提问人:lck 提问时间:3/10/2023 更新时间:3/10/2023 访问量:109
书面记录未写入联接表软删除的销毁事件
Paper trail not writing destroy events for join table soft deletes
问:
我在我的应用程序中使用纸质跟踪部分来显示更改的审核日志,并注意到当联接表中的项目被软删除时,它不会跟踪销毁事件(它适用于其他表)。我有一个模型,看起来像这样:
module Book
class BookGenre < ApplicationRecord
acts_as_paranoid
has_paper_trail
belongs_to :book, inverse_of: :book_genres
belongs_to :genre
validates :book, presence: true
validates :genre, presence: true
end
end
# == Schema Information
#
# Table name: book_genres
#
# id :bigint not null, primary key
# deleted_at :datetime
# created_at :datetime not null
# updated_at :datetime not null
# genre_id :integer not null
# book_id :integer not null
#
对此表的更改是通过“book”控制器中的 update 方法进行的。当从书籍中删除“流派”时,纸质记录不会在表格中写入任何内容,因此无法正确跟踪这些事件。versions
对于如下所示的模型,它会在通过相同的“book”控制器方法进行更新时按预期跟踪创建和销毁事件:
module Book
class Cover < ApplicationRecord
acts_as_paranoid
has_paper_trail
belongs_to :book
validates :book, presence: true
validates :cover_link, presence: true
end
end
# == Schema Information
#
# Table name: book_genres
#
# id :bigint not null, primary key
# deleted_at :datetime
# created_at :datetime not null
# updated_at :datetime not null
# book_id :integer not null
# cover_link :string not null
#
我的预感是,这与“book_genres”是一个联接表这一事实有关。关于如何让它以我想要的方式工作的任何想法?
我试过:
- 明确告知书面记录以跟踪销毁操作,而不是依赖默认值
has_paper_trail :on => [:update, :create, :destroy]
- 安装和设置 paper_trail-association_tracking Gem
- 将纸质记录升级到最新版本
- 通读了纸质记录文档,但没有找到我要找的东西(尽管也许我错过了)
答: 暂无答案
上一个:纸迹对象更改和轨道枚举
评论