1

私が取り組んでいるプロジェクトでは、Paper Trail gem を使用して、特定のモデルの以前のバージョンを保存しています。

これを使用して、モデルの更新間で何が変更され、誰が変更したかを示すモデル ビュー ページに監査履歴ページを表示しています。これは以前のバージョンでは問題なく機能していましたが、現在のバージョンのモデルを更新したのは誰かを示したいと思います。

モデルを現在の状態に更新した人を見つけるための whodunnit コマンドのバージョンはありますか?

私は、Paper Trail が現在のバージョンのどこかにそれを保存する必要があると考えました。そうしないと、次の更新で model.versions 配列がいつ読み込まれるかわかりません。

私は Stack Overflow で検索し、gems コードを調べ始めましたが、current_version の whodunnit を格納する方法を理解できませんでした。

4

1 に答える 1

0

//このウィジェット (オブジェクト) が現在のライブのものである場合は true を返します。以前のバージョンの場合は false。

widget.live?

//このウィジェットが具体化されたバージョンを返すか、ライブの場合は nil を返します。メソッドの名前をカスタマイズできます。

widget.version

オブジェクトがライブの場合、バージョンは nil です

次のように最後のバージョンを取得できます

widget.versions.last.whodunnit

class ApplicationController < ActionController::Base
  def user_for_paper_trail
    user_signed_in? ? current_user : 'Guest'
  end

  def info_for_paper_trail
    { user_id: current_user.id } if user_signed_in?
  end
end

# config/initializers/paper_trail.rb
class Version < ActiveRecord::Base
  attr_accessible :user_id
end
于 2015-09-23T09:17:25.913 に答える