Кеширование в Rails? - PullRequest
       2

Кеширование в Rails?

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

У меня есть приложение rails blog, которое работало хорошо .. Однако я провел несколько экспериментов с кэшированием и, несмотря на то, что вернулся к предыдущей версии, что-то здесь не так.

Кажется, что все страницы находятся в кеше или что-то в этом роде (я уже очистил кеш браузера), так как в журналах сервера нет доступа к базе данных.

Любая подсказка о том, как решить эту проблему? Спасибо!

1 Ответ

6 голосов
/ 13 марта 2011

Возможно, проблема в том, что вы использовали кеширование страниц следующим образом:

class ProductsController
  caches_page :index
  def index
    @products = Product.all
  end
end

Это фактически создает файл с именем products.html в вашем / public каталоге, поэтому вместо того, чтобы даже попадать в стек Rails, этот файлоказано.Очистка кэша браузера не решает проблему, поскольку файл хранится на сервере.Есть два способа истечения срока действия этого кэша.

Первый - создать действие для очистки кэша, а затем вызывать это действие всякий раз, когда вы хотите очистить кэш:

class ProductsController
  def clear
    expire_page :action => :index
  end
end

Второй способ сделать это - просто удалить файл .html из командной строки (bash):

rm public/products.html

Кэширование страниц по этой причине сбивает с толку.Трудно сказать, когда страница на самом деле кэшируется и где она хранится.

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

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