Rails — лучший способ реализовать дополнительное кэширование фрагментов для целей тестирования

Я часто использую кэширование фрагментов, и для меня это важно для хорошей производительности. Однако из-за сложности кэширования, которое я использую, мне нужно предложить своим тестировщикам способ отключить/включить кэширование в качестве переменной сеанса. (только для пользователей)

Я думал о реализации cache_disabled? метод, и теперь я проверяю его значение везде, где использую кеш. Теперь я застрял со следующей частью кэширования и не могу понять, как красиво интегрировать эту проверку:

<% cache(@cache_key_for_consultContent) do %>
     <div id="consult">
              <%= render :partial => 'LOTS_OF_CONTENT' %>
     </div>
<% end %>

Мне нужно, чтобы контент вызывался, когда кэширование отключено или контент еще не кэширован.

спасибо за ваше творчество! (Пожалуйста, держите его сухим)


person user62605    schedule 28.01.2010    source источник


Ответы (1)


В помощнике вашего приложения вы можете попробовать:

def optional_cache(key, &block)
  cache(key, &block) unless session[:disable_caching]
end

Затем замените вызовы cache() на option_cache().

person jonnii    schedule 28.01.2010
comment
Я знал, что почувствую, что ответ настолько очевиден ;-) Спасибо, приятель! - person user62605; 28.01.2010
comment
Нет проблем, иногда вам просто нужно, чтобы кто-то указал на очевидное, потому что вы слишком заняты другими вещами. Со мной постоянно такое случается ;) - person jonnii; 28.01.2010