Rails/Papertrail:变更集与关联更改

hei*_*ato 7 ruby-on-rails associations has-many has-many-through paper-trail-gem

我被卡住了.我一直在试图弄清楚如何在具有papertrail的模型中包含关联更改(has_many,has_many through).我想调用MyModel.versions.first.changeset并在关联对象上发生的任何更改都包含在.changeset从该版本的对象返回的哈希中.

我添加了版本关联的迁移:

class CreateVersionAssociations < ActiveRecord::Migration
  def self.up
    create_table :version_associations do |t|
      t.integer  :version_id
      t.string   :foreign_key_name, :null => false
      t.integer  :foreign_key_id
    end
    add_index :version_associations, [:version_id]
    add_index :version_associations, [:foreign_key_name, :foreign_key_id], :name => 'index_version_associations_on_foreign_key'
  end

  def self.down
    remove_index :version_associations, [:version_id]
    remove_index :version_associations, :name => 'index_version_associations_on_foreign_key'
    drop_table :version_associations
  end
end


class AddTransactionIdColumnToVersions < ActiveRecord::Migration
  def self.up
    add_column :versions, :transaction_id, :integer
    add_index :versions, [:transaction_id]
  end

  def self.down
    remove_index :versions, [:transaction_id]
    remove_column :versions, :transaction_id
  end
end
Run Code Online (Sandbox Code Playgroud)

我已将Papertrail添加到关联的对象中,但据我所知,没有文档讨论检索发生在关联对象上的更改.如果可以使用Papertrail,任何人都可以提供帮助吗?

我正在尝试实现对模型及其关联对象的更改的审计跟踪,这些对象可以在一个更改集中访问.

小智 -1

看起来这已作为实验性功能添加到 papertrail gem 中

查看此处的文档 https://github.com/airblade/paper_trail/blob/v4.2.0/README.md#associations

此更改将需要为 papertrail 添加新的数据库表来跟踪关联的模型。