0

モデルのバージョン 1 に Paper Trail gem を使用しています。

それは非常にうまく機能します。承認された製品の更新のみを追跡するように、バージョンをログに記録するときに改良しました。この部分は正常に機能します。

また、承認時にバージョンをキャプチャする必要があります。当然、承認時に私の承認済みフィールドは false に設定されるため、バージョンは取得されません。これを達成するために、以下の製品モデルの行を変更する方法を知っている人はいますか?

has_paper_trail :on => [:update,:approve], :if => Proc.new { |p| p.approved == true }

編集: papertrail はカスタム コントローラー アクションでは機能しないようです。誰でもそれを確認できますか?

4

1 に答える 1

0

ご覧のとおりpaper_trail/has_paper_trail.rb#L65、3 つのデフォルト イベントが である場合にのみ機能しますcreate, update, destroy。考えられる回避策は、既に実行している可能性があるメソッドでupdateイベントを発生させることです。approve

# in your model
def approve!
  self.approved = true
  save
end
于 2012-11-29T13:23:56.147 に答える