我想在24小时后存档(或删除)帖子。这可能吗 ?当用户在24小时之后登录之前的帖子将不会显示,而只是显示为下一个24小时创建新帖子的链接。现在,如果先前的帖子被删除并且不愿意学会以两种方式做到这一点并不重要。欢呼声
答案 0 :(得分:1)
这将检索不到24小时的记录......
Post.where( 'created_at > ?', 1.day.ago )
答案 1 :(得分:1)
在不必更改或销毁有关帖子的数据的情况下执行此操作的一种方法是在记录上使用范围。例如,您可以执行以下操作:
scope :recent_posts, lambda { where("created_at <= ?", (Time.zone.now - 24.hours).to_s(:db)) }
有几点需要了解:
可以真正归档数据库中的记录。如果不知道你的表结构是什么,很难确切地知道如何去做,但一般来说你有两种选择: 1.使用计划定期运行的rake任务(如每晚),查找应存档的记录,在新表中创建存档记录并销毁活动表中的记录。 2.在数据库中创建逻辑(如存储过程),逻辑与上面类似,并再次使用某种调度程序来触发它。
第一种可能是最简单,最易理解的方法,但不适用于大型数据集。第二个可能会表现得更好,但通过在Rails中放置一些应用程序代码和数据库层中的其他应用程序代码来引入额外的复杂性。
答案 2 :(得分:0)