Почему rails caches_actions использует неправильный макет? - PullRequest
1 голос
/ 05 мая 2011

В моем приложении есть контроллер сообщений с действием index, он может отвечать html и rss. Я установил кеширование с использованием memcached с caches_action :index, :layout => false, …, все работает нормально для html, но когда rss уже кешируется, я помещаю его в html layout application.html.haml, хотя у меня есть rss layout application.rss.haml .

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

1 Ответ

1 голос
/ 18 июня 2012

Я тоже натолкнулся на это, caches_action неправильно учитывает форматы и макеты, поэтому нам пришлось сделать следующее:

caches_action :index, :layout => false, :if => Proc.new {|c| c.request.format.try(:html?)}
caches_action :index, :if => Proc.new {|c| c.request.format.try(:rss?)}

По сути, отдельные вызовы caches_action для каждого отдельного формата, который вы хотите кэшировать.

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