特定のモデルを監視to_json
し、モデル名とともにモデルをテーブルに書き込む単純なオブザーバーがあります。誰が変更を行ったかを追跡したいのですが、現在のユーザーにアクセスする方法がわかりません。
おそらく、ApplicationController に入れることができる簡単な宝石やコードのビット、またはそのようなものが役立つでしょうか?
特定のモデルを監視to_json
し、モデル名とともにモデルをテーブルに書き込む単純なオブザーバーがあります。誰が変更を行ったかを追跡したいのですが、現在のユーザーにアクセスする方法がわかりません。
おそらく、ApplicationController に入れることができる簡単な宝石やコードのビット、またはそのようなものが役立つでしょうか?
私が考えることができるこれを行うためのきれいな方法はありません。User.currentパターンを使用してみることができますが、私はそのメソッドのファンではなく、オブザーバーに適切に通信できるかどうかはわかりません。
このように、誰が(最後に)オブジェクトを変更したかを知りたい場合は、通常、モデル自体に「changed_by」および「changed_at」タイプの属性を追加し、それらをコントローラーに設定します。そうすれば、監査証跡を残すのもはるかに簡単になります。実際に値をデータベースに保存したくない場合は、attr_accessorを使用することもできます。