Ruby on rails 作用域on Date.current仅在Rails重新启动时更新

Ruby on rails 作用域on Date.current仅在Rails重新启动时更新,ruby-on-rails,ruby-on-rails-3,heroku,Ruby On Rails,Ruby On Rails 3,Heroku,我有一个Rails 3应用程序托管在Heroku上,运行在Postgres数据库上。我有一个控制器操作,它应该生成一个RSS提要,但我发现它在应用程序重新启动之前不会更新(要么是因为我向Heroku发布了一个新版本,要么是因为该站点有一段时间处于非活动状态,所以dyno会向下旋转并再次备份)。它返回的是排除新项的“过时”数据 根据我的模型中名为date的行与date的行之间的比较,范围的定义如下。当前: class Petition < ActiveRecord::Base scope

我有一个Rails 3应用程序托管在Heroku上,运行在Postgres数据库上。我有一个控制器操作,它应该生成一个RSS提要,但我发现它在应用程序重新启动之前不会更新(要么是因为我向Heroku发布了一个新版本,要么是因为该站点有一段时间处于非活动状态,所以dyno会向下旋转并再次备份)。它返回的是排除新项的“过时”数据

根据我的模型中名为
date
的行与
date的行之间的比较,范围的定义如下。当前

class Petition < ActiveRecord::Base
  scope :current, where(["petitions.date <= ?", Date.current]).order("petitions.date DESC")
  scope :published, { :conditions => { :published => true } }
end 
类请求scope:current,其中([“呈请.日期当您设置一个包含时间的作用域时,您需要使用lambda表达式以确保每次使用该作用域时都对时间调用进行求值。中有更多详细信息,但您的作用域需要看起来更像:

scope :current, lambda { where(["petitions.date <= ?", Date.current]) }

scope:current,lambda{where([”请愿书)。只要你知道怎么做,日期就容易了!
scope :current, lambda { where(["petitions.date <= ?", Date.current]) }