的舊記錄我試圖在heroku上查找(然後刪除)我數據庫中的所有舊記錄。查找所有返回相同數量大於和小於(><)
對於一些這兩個原因是相等的(注意<和>)
Post.find(:all, "updated_at > ?", 30.days.ago).count
Post.find(:all, "updated_at < ?", 30.days.ago).count
讓我hesitent有關使用刪除。
我應該做些什麼來確保我只能得到較早的記錄?
的舊記錄我試圖在heroku上查找(然後刪除)我數據庫中的所有舊記錄。查找所有返回相同數量大於和小於(><)
對於一些這兩個原因是相等的(注意<和>)
Post.find(:all, "updated_at > ?", 30.days.ago).count
Post.find(:all, "updated_at < ?", 30.days.ago).count
讓我hesitent有關使用刪除。
我應該做些什麼來確保我只能得到較早的記錄?
不啻是你想要什麼:
Post.find(:all, :conditions => ["updated_at < ?", 30.days.ago])
如果你不確定,打印一些記錄使用p
或awesome_print(ap
)控制檯。
如果你想刪除舊記錄,你要刪除的是較早的日期記錄,即少比給定日期(30.days.ago)
確實。唯一的問題是上面列出的兩個呼叫返回相同的號碼。不知道是否重要,我打電話的軌道默認「updated_at」領域,而不是我自己的。 – AdamT
爲什麼不將state
標誌設置爲pending_delete
,而是一旦滿意就可以刪除該狀態下的所有記錄,而不是刪除記錄。
其他的答案是正確的,但對於更新ActiveRecord的語法:
Post.where("updated_at < ?", 30.days.ago)
這可能與該做的'count()'函數結束....此外,你確定在30天前以及30天之前沒有相同數量的記錄嗎? – summea