Rails Date.today反映了服务器的部署日期

Ani*_*ana 3 ruby ruby-on-rails date amazon-ec2

我有一个rails应用程序,它显示活动事件(今天或之后的事件).

scope :active, where("event_date >= ?", Date.today).order("event_date ASC")

在当地很好.但是在生产服务器上,查询将采用部署日期进行比较.

这是日志

SELECT "events".* FROM "events" WHERE "events"."school_id" = 32 AND (roster_id in (45) or roster_id IS NULL) AND (event_date >= '2014-09-18') ORDER BY event_date ASC

但是如果在生产中从控制台检查,它显示正确

 1.9.3-p448 :001 > Date.today
     => Fri, 19 Sep 2014
Run Code Online (Sandbox Code Playgroud)

服务器位于AWS EC2上

任何帮助深表感谢.

Sur*_*rya 6

试着把它放在lambda中:

scope :active, -> { where("event_date >= ?", Date.today).order("event_date ASC") }
Run Code Online (Sandbox Code Playgroud)

可能Date.today正在加载(即部署)代码时进行评估.

  • 是的,这就是必须要*lambda*的原因.好的答案+1 (2认同)