イベント時にいくつかの(異なる)レコードのスナップショットを保存することについてのアイデアを探しています。例えば、ユーザはアプリケーションからドキュメントを取得します。後で再生することができる。どのような戦略をお勧めしますか?現在の値を持つ表と同じ表を使用するか、履歴表を使用するか?あなたはその仕事で私を助けてくれるプラグインを知っていますか?あなたの考えと解決策を教えてください。Railsでヒストリカルデータを保存/取得するためのテクニック
答えて
私はこれをもう一度やりました。私たちは、ログインしたかったテーブルに非常に類似した構造を持っていた新しいテーブルを作成し、私たちは何かをログに記録するために必要な時はいつでも、私たちはこれに似た何かをやった:
attr = object_to_log.attributes
# Remove things like created_at, updated_at, other unneeded columns
log = MyLogger.new(attrs)
log.save
をプラグイン/宝石がある非常に良いチャンスがありますしかし、このようなものをする。
私はこのようなもののためにacts_as_versioned
を使用しました。
これにはいくつかのプラグインがあります。
Acts_audited
監査対象として、すべての監査対象オブジェクトに対して1つのテーブルが作成され、既存のテーブルは変更する必要はありません。変更ごとにエントリを取得します。変更は、変更の種類(CRUD)のメモフィールドにハッシュとして格納されます。アプリケーション・コントローラー内の1つのステートメントで、監査するモデルを指定するだけで、セットアップが非常に簡単です。 ローリングバックはあなた次第ですが、情報はそこにあります。保存された情報は単なる変更であるため、後続の変更によってオブジェクト全体が困難になることがあります。
Acts_as_versioned
セットアップが少し複雑です。バージョンを追加するオブジェクトごとに別のテーブルが必要で、既存のテーブルにバージョンIDを追加する必要があります。ロールバックは非常に簡単です。あなたが簡単に違いを強調することができるように、最後のバージョンからの変更のハッシュを提供するgithub上のフォークがあります(私が使用しているものです)。私の推測では、これが最も人気のあるソリューションです。
私は経験がありません:acts_as_revisable。次回はバージョン管理が必要になるので、もっと洗練されたように見えるでしょう。
OPは1歳ですが、vestal_versionsを追加すると思います。 1つのテーブルを使用して、各バージョンのシリアル化されたハッシュを追跡します。変更の記録をトラバースすることにより、モデルを任意の時点に戻すことができます。
この投稿のコミュニティのお気に入りと思われる...
- 1. アンドロイドのテキストゲームでテクニックを保存する
- 2. ExtJs:イメージの保存/取得を処理するためのベストプラクティス
- 3. RailsのアプリのためのmailgunメッセージAPIで保存されたメッセージを取得する方法
- 4. アップロードしたファイルを保存するためのRailsディレクトリ
- 5. MongoDB投稿のための「好き」を保存するための最適なテクニック
- 6. Rails 3&paperclip - 画像を保存するためのパス
- 7. PHPでクレジットカード情報を取得して保存するためのベストプラクティス
- 8. DBに保存するためのsyncfusion chartwebcontrolのバイナリデータを取得するには?
- 9. Rails - relative paths - テクニック
- 10. サービスのプロパティを保存/取得するための最良の方法
- 11. ローカルディレクトリにsvnログを取得して保存するためのバッチファイル
- 12. Rails。 dbに文字列を保存するparamsを取得する
- 13. rails mongo前日の結果を取得するためのクエリ
- 14. mvc4で保存されたクッキーを取得するには?
- 15. Google翻訳で保存された単語を取得する
- 16. Railsで更新時に保持するパラメータを取得する
- 17. Rails 4ネストされたフィールド_保存しないため
- 18. Javascriptはjsonを取得し、処理のためにローカルに保存します
- 19. mysqlから取得した保存データ
- 20. AJAXで取得したデータを後で使用するために保存する方法
- 21. Rails Associationでレコードを保存する
- 22. CarrierwaveでファイルをRailsに保存する
- 23. Railsで値を保存
- 24. ブロブストアに保存された写真のメタデータを取得する
- 25. 保存したメールの内容を取得する方法
- 26. 保存されたカード/トークンのリストを取得する
- 27. ExtJS - 保存されたレコードのIDを取得する
- 28. Rails。子を保存する前に親を保存する
- 29. ファイルを保存するためのデザインデータベース
- 30. リレーショナルデータベースでのデータの保存と取得
あなたのリンクが正しく動作していません。代わりにこのリンクに行くように促します。http://github.com/technoweenie/acts_as_versioned/tree/master – MattC
リンクの正確なURLはどれくらい奇妙ですか。あなたが404ページにいるときにアドレスバーでもう一度戻ると、正しい場所に移動します。 Githubは今日リリースしているので、私は物事が落ち着くと思う。 –