【问题标题】:Scope not refreshing on production. Using passenger and apache2范围不刷新生产。使用乘客和 apache2
【发布时间】:2011-06-07 07:51:16
【问题描述】:

我的应用在生产环境中运行时遇到了一个非常奇怪的问题。

我有一个名为 Qrtable 的表,它包含 144 条记录,每条记录的代码字段和时间字段递增 10 分钟。

然后我就有了这个范围

    scope :current, where("time > ? and time <= ?", Time.now-14.minutes, Time.now+5.minutes)

这个作用域的作用是收集时间范围内的记录,并返回第一条和最后一条记录。它要么返回 1 条记录,要么返回 2 条记录。每隔 5 分钟左右,它的记录就会更改一次。

在我看来,我只是打印第一条和最后一条记录。

    ="#{Qrtable.current.last.code} for time #{Qrtable.current.first.code}"

所以现在这就是发生的事情。我在笔记本电脑上将此作为开发环境运行。每隔 5 分钟左右,我会刷新代码更改的页面。但是我的产品在托管服务器上运行,当我刷新页面时,代码不会改变。

我还注意到,当我进行上限部署时,这会重新启动服务器并且代码会第一次更新,但之后我的范围不会随着我刷新页面而改变。只是想知道是否有人对此有任何想法或曾经遇到过。

我已尝试多次刷新 Apache。

【问题讨论】:

    标签: ruby-on-rails-3 model scope passenger production-environment


    【解决方案1】:

    不会的。它在评估类时进行评估。使用:

    scope :current, lambda {where("time > ? and time <= ?", Time.now-14.minutes, Time.now+5.minutes)}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多