如何在视图中访问Controller的类变量

时间:2011-03-09 18:02:45

标签: ruby-on-rails ruby-on-rails-3 twitter

我基本上试图在我的Rails 3应用程序中缓存推文,所以我不必在每次刷新页面时都使用它们。我有两个类变量:

@@tweet_time = Time.now
@@tweets = Twitter.user_timeline(TWEET_ACCOUNT)[0,NUMBER_OF_TWEETS]

那些在我的控制器中。

在控制器中,我检查是否

@@tweet_time < 1.hour.ago

如果是的话,我会重置@@ tweets和@@ tweet_time。

但是当我尝试在视图中循环@@ tweets时,它说@@ tweets是一个未初始化的类变量。我想这是因为从技术上来说它是从ActionView而不是ActionController调用的。

如何在视图中访问@@ tweets?

PS如果我完全倒退,请随意批评,希望能给我一个更好的方法。我非常感谢您提供的任何反馈。

2 个答案:

答案 0 :(得分:3)

我不认为控制器中的类变量会在请求中持续存在。这不是控制器的责任。

如果您不想使用像Redis这样的内存数据库来缓存您的推文,您可以尝试将类变量移动到一个模型,然后您可以从控制器进行查询。

答案 1 :(得分:0)

我现在正在使用“dalli”宝石来做这件事。从我所知道的,这是一种快速使用MemCache的方法。