Кэширование вызовов API Twitter в Rails

Мой проект реализует танец OAuth «Войти через Twitter» и отображает страницу, показывающую всех пользователей, за которыми следует текущий пользователь.

# /views/user/show.html.erb

<h1>Users You Follow</h1>

<%= render :partial => 'followed_user', :collection => @current_user.following %>

после является виртуальным атрибутом модели Users.

# /users/models/user.rb

def following
  result = twitter_request_authenticated('get_following')
  parse_body(result)
end

Прежде всего, поскольку я новичок в Rails (и в MVC), я должен спросить: подходящая ли это абстракция? Следует ли моделировать самих этих «подписанных пользователей»?

А теперь реальный вопрос:

Посещать Twitter эту информацию при каждой загрузке страницы кажется ненужным. Если бы мы хотели кэшировать результат такого вызова API на заданный период времени (и сделать доступным метод для удобной очистки этого кеша), как мы могли бы это сделать? Это просто вопрос сохранение возвращаемого значения вызова API в столбце базы данных вместе со столбцом истечения срока действия, и вызывает API только тогда, когда это значение столбца пустое или cache_expires

6
задан cantlin 28 March 2011 в 14:56
поделиться