Rails - 使用cookies如何在日期到期后从页面中删除记录。
它应该在视图页面
中发生 lead_row.created_at.strftime(“%b%d,%Y”),: expires => 5.days.from_now}%> ...应该删除页面..没有任何链接...答案 0 :(得分:2)
您无需重定向到删除页面即可删除项目。过滤器之前可以工作。
# application_controller.rb
def destroy_when_cookie_is_nil
some_record.destroy if cookies[:time].nil?
end
# some controller
before_filter :destroy_when_cookie_is_nil
然而根据Cookie过期删除记录对我来说似乎不是一个好方法。如果您想在5天后删除记录,我强烈建议您不要使用Cookie,而是在模型中添加expires_at
日期时间列。您可以通过回调自动设置此列。
# in model
before_create :set_expiration
def set_expiration
self.expires_at = 5.days.from_now
end
然后,您可以将命名范围添加到模型中以获取未过期的记录。
# in model
named_scope :active, lambda { {:conditions => ["expires_at IS NULL OR expires_at >=", Time.zone.now]} }
然后,您可以调用Item.active
仅显示未过期的记录。如果要确保从数据库中删除这些内容,请设置cron任务以查找所有过期的记录并将其删除。