0
我有一个方法用于在每个页面上呈现新闻报道。如果你不在保健主页上,那么它不会向该家庭提供特定的消息。处理每一个页面请求是一件相当沉重的事情。我想知道是否有人可以想出一个缓存它的好方法。高速缓存一个有条件输出的方法
def articles_to_show
@articles = @care_home ? @care_home.news_items.latest.translated.limit(4).includes(:images) : Refinery::News::Item.latest.hidden_from_main.translated.limit(4).includes(:images)
end
这里的视图模板 - http://pastebin.com/BAmgSZia
我试过片段缓存,但后来我意识到每一个现在,然后,如果它过期和第一个请求是一家养老院,那么新闻文章将被错误地填充。
事实上,这是丑陋的,不幸的是它的代码中,我从之前的开发者手中接管,这是一个我想要随着时间推移而改进的背负式项目。我很欣赏这些建议,这绝对是一种更好的方式。在该方法实际上是在应用程序帮手,即使在控制器!几乎每一页都会调用helper方法,因为它的视图模板无处不在。 – Callum
哦,生病了......我的回答大部分都是不正确的,因为它是一个帮手。但是你仍然可以通过块使用延迟加载。这是有问题的方法,但工作就像这个应用程序的其余部分... –