1
  1. テーブルに多くのフィールドがあり、すべての列をバージョン管理したくありません。変更を保存する必要のない列をスキップするにはどうすればよいですか

以下を使用しましたが、値は「バージョン」テーブルに保存されます。私のモデルでは

class User < ActiveRecord::Base
  has_paper_trail skip: [:foo1, :foo2, :foo3]
  # tried with ignore instead of skip
end
  1. 「バージョン」テーブルにオブジェクト フィールドを書き込まないようにするにはどうすればよいですか。
4

1 に答える 1

0
  1. ... すべての列をバージョン管理したくありません。変更を保存する必要のない列をスキップするにはどうすればよいですか

skip正しい。ドキュメントのセクション 2.cを参照してください。監視する属性の選択:

:skip オプションを使用すると、フィールドを完全にスキップできます。:ignore と同様に、これらのフィールドを更新しても、新しい PaperTrail::Version は作成されません。さらに、これらのフィールドは、新しい PaperTrail::Version が作成されるたびに、オブジェクトのシリアル化されたバージョンには含まれません。

例えば:

class Article < ActiveRecord::Base
  has_paper_trail :skip => [:file_upload]
end

skipドキュメントどおりに動作しない場合は、バグ レポートを送信してください。

Re: 2 番目の質問:

  1. 「バージョン」テーブルにオブジェクト フィールドを書き込まないようにするにはどうすればよいですか。

にレコードを挿入するときversions、PaperTrail は常に列に何かを書き込みobjectます。たとえば を使用して、が書き込まれるかを構成できますskipが、常に何かが書き込まれます。

于 2016-07-29T17:12:31.927 に答える