Это моя структура данных.
Foo
has_many: bar
Bar
belongs_to: Foo
Я пытаюсь написать метод кэширования для Bar, который будет извлекать только «избранные» записи.
def self.get_featured
Rails.cache.fetch("featured", :expires_in => 1.day) do
self.where(:featured=>true)
end
end
Это работает. Однако представления, которые отображают эти данные, также требуют такой информации, как
featured.foo.title
, который не кэшируется как часть метода .get_featured.
Каждый раз, когда я называю что-то подобное, БД снова попадает в цель, что происходит> 40 раз на страницу, что приводит к небольшому взрыву БД.
Вопрос, как я могу кэшировать отфильтрованную информацию Bar & Foo для всех отфильтрованных записей этой панели?