查找返回相同金额且大于和小于(><)的所有旧记录

时间:2012-01-25 20:33:57

标签: ruby-on-rails ruby database heroku

我正在尝试在heroku上查找(然后删除)我的数据库中的所有旧记录。

出于某种原因,这两者是相同的(注意<和>)

Post.find(:all, "updated_at > ?", 30.days.ago).count
Post.find(:all, "updated_at < ?", 30.days.ago).count

让我关注使用删除。

我应该拨打什么电话来确保我只获得较旧的记录?

5 个答案:

答案 0 :(得分:12)

其他答案是正确的,但是对于更新的ActiveRecord语法:

Post.where("updated_at < ?", 30.days.ago)

答案 1 :(得分:11)

少于你想要的东西:

Post.find(:all, :conditions => ["updated_at < ?", 30.days.ago])

如果您不确定,请使用p或awesome_print(ap)将部分记录打印到控制台。

答案 2 :(得分:3)

您需要使用:conditions指定where子句,如下所示:

Post.all(:conditions => ["updated_at < ?", 30.days.ago])

答案 3 :(得分:2)

如果要删除旧记录,则要删除具有较早日期的记录,即 less 比给定日期(30.days.ago)

答案 4 :(得分:0)

为什么不将state标志设置为pending_delete而不是删除记录,然后一旦您满意,就可以删除该状态下的所有记录。