Есть некая модель
MyModel, которая описывает достаточно большой объем данных. Для этой модели был написан обычный чистый SQL-запрос, который невозможно было записать в ActiveRecord-варианте.
Возникла необходимость использовать кеш для того, чтобы не выполнять постоянно этот запрос, а хранить значения в кеше некоторое время.
Допустим, есть код:
sql_query = " ... " #большущий запрос
items = Rails.cache.fetch("some_key", :expires_in => 1.day) do
MyModel.connection.select_rows(sql_query)
end
puts items
Кода я выполняю запрос, то не видно разницы, либо я его без кеширования выполняю, либо с кешированием. С указанной выше конструкцией запрос к серверу все равно выполняется.
Как правильно сделать чистый SQL-запрос и закешировать результат? Поделитесь опытом , пожалуйста. Спасибо!