@belyaevcyrill

Как в Rails закешировать результаты чистого SQL?

Есть некая модель 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-запрос и закешировать результат? Поделитесь опытом , пожалуйста. Спасибо!
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы