【发布时间】:2012-02-19 00:33:28
【问题描述】:
我似乎无法从 heroku 上的应用中删除旧记录。
当前 heroku 调度器运行:
class Post < ActiveRecord::Base
def self.get_data
# this populates my app but the database is starting to get large and I don't need the old records
scr = Scrape.new
data_array = scr.scrape
store_data(data_array)
# destroy_old_data
end
但我想取消注释“destory_old_data”调用。
def destroy_old_data
# oldest = Post.where("updated_at > ?", 30.days.ago)
# Post.delete_all("updated_at > ?", 30.days.ago)
# Post.destroy_all("updated_at > ?", 30.days.ago)
oldest = Post.find(:all, "updated_at > ?", 30.days.ago)
oldest.destroy
end
如您所见,我尝试了一些似乎可以在控制台本地运行的东西,但我无法让它们在 heroku 上运行。
我得到的错误是这样的:
ArgumentError: wrong number of arguments (2 for 1)
or
when using Post.find
NoMethodError: undefined method `destroy' for #<Array:0x00000004579898>
要成功找到并删除所有这些旧记录,我能做的最简单的调用是什么?
任何帮助将不胜感激。
【问题讨论】:
-
您是否在
oldest = Post.find(:all, "updated_at"...)上收到该错误? -
不,我得到:NoMethodError: undefined method `destroy' for #<0x00000004579898>0x00000004579898>
标签: ruby-on-rails database activerecord heroku