ruby on rails 3.1 фрагментное кеширование - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть приложение, и я хотел бы кэшировать некоторые части страницы, и я много читал о том, как это сделать.

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

Я хотел бы использоватькэш фрагментов с autoexpire .

 <% cache(:action => 'recent', :action_suffix => 'all_products') do %>
      All available products:
      <% Product.all.each do |p| %>
        <%= link_to p.name, product_url(p) %>
      <% end %>
    <% end %>

Где мне установить autoexpire?какие-нибудь примеры вокруг?как я могу это сделать?

1 Ответ

2 голосов
/ 15 ноября 2011

В вашей модели продукта вы можете сделать что-то вроде этого

  after_save :expire_caches
  after_destroy :expire_caches

  # can't do this in a sweeper since there isn't a controller involved
  def expire_caches
      ActionController::Base.cache_store.delete_matched(%r{product\?for=\d+&fragment=products})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...