我有一張表,我想修剪到最近的500行。什麼是最有效的方式來做到這一點在軌道?在RoR 3.0中,如何將表格修剪成最近的500個條目?
1
A
回答
3
一種方式做到這一點:
class MyModel
after_create do
self.class.prune(500)
end
def self.prune(max)
if count > max
order('created_at DESC').offset(max).each do |model|
model.destroy
end
end
end
end
的prune
類方法也可以,如果你想使用多個加入ActiveRecord::Base
楷模。
1
這絕對是這樣做的一種方式,儘管有人可能會以更有效的方式提示。在你的控制器中創建一個方法,在這個例子中,我將它稱爲「修剪」,並在創建操作後調用它(可能會有after_filter或類似的東西)。它應該看起來像這樣。
def prune
if MyModel.count > 500
@models = MyModel.all(:offset => 500)
@models.each do |m|
m.destroy!
end
end
end
0
一個基本的解決方案是使用下面的腳本下像每當https://github.com/javan/whenever運行以下命令調度應用: Mould.order('updated_at DESC').offset(20).each {|m| m.destroy }
替換模具與模型的名稱。 cron和調度的使用進行了詳細的下面的帖子被討論:A cron job for rails: best practices?
相關問題
- 1. 如何「修剪」一個arrayList只有5個最近的值? :
- 2. project_measures表最近的生長方式巨大,如何修剪
- 3. 如何只保留log4net sql表中最近的n個條目?
- 4. 最近表格的最近表格
- 5. 獲取最新的條目RoR中
- 6. 如何從最靠近的最近的+和最靠近的最近的+修剪一個字符串?正在進行中4gl
- 7. 如何獲取最新的獲取最近的7個條目
- 8. svn籤最近的日期和修剪空目錄
- 9. 修剪TreeMap到n個條目
- 10. 如何獲取子查詢組中最近的n個條目?
- 11. 如何在表格中找到最近的第12個日期?
- 12. T-SQL將日期時間修剪到最近的日期?
- 13. 查詢使用過濾條件查找相關表格中最近的條目
- 14. 最近添加的項目最後10個表格
- 15. 僅存儲X條最近的條目
- 16. MySQL最近n個條目,升序?
- 17. 如何遍歷MongoDB 3.0中的條目?
- 18. 如何將15個條目的數據表格平滑到100個條目?
- 19. SQL在最近的日期找到最後一個條目
- 20. CSS修剪表格內容
- 21. 如何在目錄(python)目錄中找到最近修改過的文件夾?
- 22. 在select語句中獲取每個組的最近條目
- 23. 修剪最後的「」在VB.NET
- 24. 如何使用腳本修剪電子表格中的多個單元格?
- 25. MySQL從兩個數據庫表獲取最近的條目
- 26. SQL加入一到多個表,只選擇最近的條目
- 27. 如何將字符串修剪爲最後四個字符?
- 28. RoR如何設置根目錄以顯示模型中的最新條目
- 29. 如何僅選擇表格中的最新條目?
- 30. 如何在Android Studio中清除最近的項目列表?
這將刪除最近的行,而不是最舊的行(儘管[這是不能保證](http://forums.mysql.com/read.php?21,239471,239688#msg-239688),因爲有沒有明確的順序)。 –
噢,我忘了訂購我的結果。 – sensae