2

分析、ソーシャル機能 (アイテムのクリックは投票)、セキュリティ、デバッグなど、さまざまなユーザー アクティビティを追跡するアクティビティ テーブルが必要です。

これを有効にするには、devise (2) を使用した私のレール (3.2.3) アプリで、モデルおよびコントローラー レベルで現在サインインしているユーザーのすべてのアクティビティを格納するテーブルが必要です。私のアクティビティ テーブルには、列モデル、id、アクション (作成、読み取り、更新、破棄、取得)、アクター (ログイン ユーザー)、および ip (元のコンピューターの IP アドレス) があります。

ソリューションの設計に関する問題は、MVC の関心の分離によるものです。オブザーバーを使用すると、すべてのモデル レベルのアクティビティを追跡できますが、現在のユーザーまたは IP を取得できません。アプリケーション フィルターを使用すると、ユーザーと IP 情報を取得できますが、(たとえば) レコードが保存されたかどうかを実際に知るには、(たとえば) model.save! の近くにコードを挿入する必要があります。各コントローラーの各アクション内で呼び出します。

これを実装する最良の方法は何ですか?

4

0 に答える 0