Ich stecke fest. Ich habe versucht, herauszufinden, wie man die Assoziationsänderungen (has_many
, has_many through
) auf einem Modell einfügt, das papertrail hat. Ich möchte MyModel.versions.first.changeset
aufrufen und alle Änderungen, die an assoziierten Objekten stattfanden, in den Hash .changeset
aufnehmen, der von dieser Version des Objekts zurückgegeben wird.Schienen/Papertrail: Changeset mit Assoziationsänderungen
Ich habe die Migration für Version Verbände hinzugefügt:
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
Ich habe Papertrail zu den zugehörigen Objekten hinzugefügt, aber soweit ich das beurteilen kann, gibt es keine Dokumentation Abrufen von Änderungen der Diskussion, die auf das nahm zugehörige Objekte. Kann jemand weiterhelfen, wenn dies mit Papertrail möglich ist?
Ich versuche, einen Audit-Trail von Änderungen an einem Modell und den zugehörigen Objekten zu implementieren, auf die in einem Changeset zugegriffen werden kann.
Ich denke, ich suche nach einer ähnlichen Funktion. Ich möchte eine Änderung "gehört" in das Objekt "has_many" aufnehmen. Wenn beispielsweise eine Person viele Telefonnummern hat und Sie eine Personennummer ändern/hinzufügen/löschen, wird diese Änderung als Änderung der _person_ aufgezeichnet und nicht als Änderung der Telefonnummer aufgezeichnet. – Luke
@Luke Ja, ich habe es vor einiger Zeit versucht, aber es sieht nicht so aus, als ob diese Art der Assoziationsverfolgung es vollständig in Papiertrail geschafft hat, es gibt ein altes Ticket, das einige Schwierigkeiten beschreibt, sie haben daran gearbeitet für zukünftige Version, ich Behalte es ab und zu im Auge https://github.com/airblade/paper_trail/issues/503 – heinztomato