0

我在开发中使用带有 sqlite 的 Rails,在生产中使用 mysql。我使用这种方法得到了前一天Date.today.prev_day(n=3)。这在开发中工作正常,但在部署到生产时会出现此错误:

NoMethodError (undefined method `prev_day' for Sun, 09 Jun 2013:Date)
4

2 回答 2

0

为什么不直接使用yesterday方法:

1.9.3p392 :011 > Date.today
 => Sun, 09 Jun 2013 
1.9.3p392 :012 > Date.yesterday
 => Sat, 08 Jun 2013 
1.9.3p392 :013 > Date.yesterday.yesterday
 => Fri, 07 Jun 2013

或者,如果您需要提前指定特定天数,请坚持使用 prev_day 方法,但尝试删除 n=3 并仅使用整数,如

Date.today.prev_day(3)

如果这不起作用,您的生产服务器上可能有旧版本的 Ruby。

只需使用等效方法Date - n

1.9.3p392 :017 > Date.today-3
 => Sun, 09 Jun 2013 
于 2013-06-09T09:56:15.153 回答
0

您可能正在生产机器上使用 1.9.1 之前的 ruby​​ 版本。根据APIdock prev_day是在 1.9.1 版本中引入的。

于 2013-06-09T11:22:51.430 回答