2013-06-21 58 views
2

我被嚴重打倒了。我有一個Rails應用程序,它將博客文章存儲在Article模型中。索引頁在模型上調用範圍並返回最新的文章。但是,當我加載頁面時,只有一些文章顯示出來,但是當我將代碼複製到Heroku控制檯時,缺失的文章顯示在結果中。默認情況下,Heroku會自動緩存Rails控制器操作嗎?

這裏的index動作:

def index 
    @articles = Article.featured_published_articles.order("date_time DESC").page(params[:page]) 
end 

這裏的範圍:

scope :featured_published_articles , where("featured = ? AND status IN (?) AND date_time <= ?", true , ['published','published-pending'], DateTime.now) 

的方法,正常工作時,我把它從控制檯,但是當我加載網頁,而不是所有的結果正在顯現。有任何想法嗎?

回答

4

這不是heroku特有的,但範圍是存儲「DateTime.now」,當它第一次解釋。基本上,DateTime.now是當你推送到heroku,而不是「現在」。

您想在這裏使用lambda代替

scope :featured_published_articles , -> {where("featured = ? AND status IN (?) AND date_time <= ?", true , ['published','published-pending'], DateTime.now) } 
在Rails4

,這不會是一個問題(它會給你一個加載錯誤),但在Rails3中它會加載,並導致你看到的問題。

相關問題