我有一个调用
的部分模板feed = Feedzirra::Feed.fetch_and_parse("http://my.rss.feed")
@entries = feed.entries
在我网站的大约80%的页面中调用了这个部分 - 我只是想知道最佳实践:在哪里存储这种类型的变量。任何建议表示赞赏。
答案 0 :(得分:4)
我想使用过滤器 - 无论在之前还是之后适用。
答案 1 :(得分:2)
您应该将它放在application_controller的before_filter中。这样,它将为每个操作分配给每个控制器。
答案 2 :(得分:0)
此代码应放在控制器中。最简单的方法就是这样做
class ApplicationController
def fetch_feed_entries
feed = Feedzirra::Feed.fetch_and_parse("http://my.rss.feed")
@entries = feed.entries
end
end
然后,在任何必须发生这种情况的控制器内,您可以编写如下内容:
class PostsController
before_filter :fetch_feed_entries
end
现在,此代码仍会为每个请求获取Feed。如果这是你想要的,那很好。但您也可以将Feed保存在会话中,因此每次会话只会提取一次Feed。我不确定这对你是否有意义。
然后你会写一些像:
def fetch_feed_entries
session[:feed_entries] ||= Feedzirra::Feed.fetch_and_parse("http://my.rss.feed").entries
@entries = session[:feed_entries]
end
希望这有帮助。