Как я могу получить доступ к переменной класса контроллера в представлении - PullRequest
0 голосов
/ 09 марта 2011

Я в основном пытаюсь кэшировать твиты в своем приложении на Rails 3, поэтому мне не нужно получать их при каждом обновлении страницы. У меня есть две переменные класса:

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

Они в моем контроллере.

В контроллере я проверяю, есть ли

@@tweet_time < 1.hour.ago

и если да, я сбрасываю @@ tweets и @@ tweet_time.

Но когда я пытаюсь просмотреть цикл @@ твитов в представлении, он говорит, что @@ твиты - это неинициализированная переменная класса. Я предполагаю, что это потому, что технически это вызывается из ActionView вместо ActionController.

Как я могу получить доступ к @@ твитам в представлении?

PS Если я делаю это полностью задом наперед, не стесняйтесь критиковать и, надеюсь, предложите мне лучший способ. Я действительно ценю любые отзывы, которые вы можете предложить.

Ответы [ 2 ]

3 голосов
/ 09 марта 2011

Я не думаю, что переменные класса в контроллере будут сохраняться при разных запросах. Это не обязанность контроллера.

Если вы не хотите использовать базу данных в памяти, такую ​​как Redis, для кэширования ваших твитов, вы можете попробовать переместить переменную класса в модель, которую вы затем сможете запросить из контроллера.

0 голосов
/ 09 марта 2011

Я использую камень "Далли", чтобы сделать это сейчас.Это быстрый способ использовать MemCache из того, что я могу сказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...