У меня есть ситуация, когда:
View:
<%= cache 'some_key' do %>
<%= @some_collection %>
<% end %>
Controller:
def show
unless Rails.cache.read 'some_key'
@some_collection = expensive_query_goes_here
end
end
Кажется, правильнее было бы поставить условное выражение, чтобы предотвратить выполнение дорогостоящего вычисления @some_collection в контроллере при наличии ключа кеша.
Следовательно, почти для каждого блока кеша, на мой взгляд, в контроллере должно быть соответствующее условие, чтобы проверить, существует ключ кеша или нет. Один из способов избежать этого - поместить дорогую логику запросов в блок кеша в представлении (чёрт!).
Это как большинство людей подходят к этому? Кажется, это очень грязно.