我正在使用我創建的服務對象計算遊戲玩家的每週排行榜統計信息。我處於一種情況,如果我想重做任何特定周的計算,我想刪除舊的統計信息,當且僅當新的統計信息已成功保存。如何在Rails中只從MySQL中刪除ActiveRecord集合中的對象?
大約我的步驟:
- AR查詢現有的統計數據爲給定的周成可變
- 運行那個星期的新統計
- 保存新的數據,返回如果保存成功
- 在成功保存新數據,從步驟1中查詢的mysql中刪除對象。
我試過使用@old_data.delete_all
方法,但那會在當時從ActiveRecord_Relation對象關閉mysql運行查詢,同時銷燬新創建的數據。我只想摧毀我在創建新數據之前從查詢中保存的那些數據。
可能的解決方案我還沒有嘗試過:Sorta hacky,但通過更新任意值的舊數據查詢中的所有對象的任意列並使用delete_all
關閉該任意值的查詢來標記舊數據...這聽起來不像是做事情的有力方式,而且還增加了額外的查詢。
它從字面上明白了我的答案是多麼簡單,我回過頭來發布它,第二個答案!只要計時器到期,我會立即將您的標記標記爲正確。謝謝! –