0

私のアプリにはたくさんの合計関数があります。すべてのデータの合計を別のモデルに移動しています...それを...合計と呼びましょう。これにより、多くの行を合計する必要があるたびにデータベースを釘付けにすることがないため、これらの番号への呼び出しが速くなります。

私がやりたいのは、他の特定のモデルが作成または更新されるたびに、合計行(多くの属性)を更新することです。クラスメソッドを使用して各モデルでこれを実行しようとしていますが、何らかの理由で機能しません。

選択したモデルのafter_createコールバックから呼び出すことができるユニバーサルメソッドをどこで作成できるのか疑問に思っています。合計は、更新されているモデルではないアカウントに関連付けられています。他のアカウント関連モデルは、合計モデルにヒットするモデルです。そのため、おそらくself.account_idをコールバックメソッドに渡す必要があります。

Papertrailsバージョンモデルと同様に、別のモデルが保存されるたびに更新されます。

4

1 に答える 1

1

統計の宝石を見てください。

Railsキャッシュを使用して、データベースへの繰り返しの集約呼び出しを防ぐキャッシュオプションがあります。

プロパティが更新されるたびに更新されるのではなく、このようなものが好きです。sumsモデルをメモリに保持する予定がない場合はsums、実際の更新と同じ数の更新をテーブルに実行する必要があります。

読み取り時間ではなく書き込み時間のオーバーヘッドがあっても問題ない場合がありますが、Statisticsには最適化するための他のオプションが付属しています。

于 2013-03-24T11:26:47.273 に答える