2013-08-07 39 views
1

我遇到了Rails应用程序的奇怪行为。Rails - 仅在重新保存控制器后才显示数据

我已经从Github下载了我的回购协议,并发起了一个开发数据库。 现在,当我创建一个事件(多数民众赞成的应用程序的目的),我看到它后,我按'创建'和浏览器去,说'事件/ 1'。

但是如果我导航到所有事件应该列出的主页面,事件不会显示,直到我重新保存我的控制器文件(我不必进行任何更改在里面)。页面重新加载没有帮助。

我还应该提到,在我以前的机器上一切正常。

这里是我的控制器的一部分:

class EventsController < ApplicationController 

    def index 
    @events_future = Event.future_events 
    end 

范围

scope :future_events, order('start_date ASC').where('start_date >= ?', Date.today) 

再次,相同的Mac上之前,我有它重新格式化代码工作完美,所以我不认为这是我的编码(嗯,我希望)。这可能是什么?谢谢。

+3

像这样定义范围在生产模式下将不起作用,因为模型将被缓存,所以范围将在加载时进行评估,Date.today也将被缓存,直到您重新启动应用程序。将'order(...)'部分包装在lambda中。我想这会导致你当前的设置出现问题。 – lawitschka

+0

你是对的!谢谢!不明白为什么它在我以前的版本上工作。再次感谢。 –

回答

1

谢谢lawitschka上述

定义这样的范围不会在生产模式下工作,因为该模型将被缓存,那么范围将负载时间进行评估,并Date.today将被缓存,如好吧,直到你重启你的应用程序。将订单(...)部分包装在lambda中。我想这会导致你当前的设置出现问题。

相关问题