私は作成したサービスオブジェクトを使用して、ゲームのプレイヤーの毎週のランキングを計算しています。私は、特定の週の計算をやり直したい場合、新しい統計が正常に保存された場合にのみ古い統計を削除したいという状況にあります。RailsでmysqlのActiveRecordコレクションからオブジェクトだけを削除するには?
大雑把に私の手順:変数
- ARクエリ既存の統計その週の新しい統計
- 保存新しいデータを、保存が成功した場合の復帰
- オン新しいデータの保存が成功したら、手順1のクエリのmysqlからオブジェクトを削除してください。
私はその時点でmysqlのActiveRecord_Relationオブジェクトからクエリを実行するだけで、新しく作成されたデータも破棄されます。私は新しいデータを作成する前に私がクエリから保存したものを破壊したいだけです。
考えられる解決法私は試したことがありません:古いデータを古いデータクエリ内のすべてのオブジェクトの任意の列を任意の値で更新し、その任意の値のクエリをオフにしてdelete_all
を使用して古いデータにフラグを付けます。これは、物事を進めるための道のりのようなものではなく、追加のクエリを追加します。
これは文字通り私にとって初めての答えでした。タイマーの期限が切れるとすぐに私はあなたのものを正しいものとしてマークします。ありがとう! –