В моем приложении есть объекты, и они принадлежат странам, регионам, городам, типам, группам, компаниям и другим наборам.Каждый набор довольно прост - у него есть идентификатор, имя и иногда некоторые указатели на другие наборы, и он никогда не меняется.Некоторые наборы небольшие, и я загружаю их в before_filter следующим образом:
@countries = Country.all
@regions = Region.all
Но затем я вызываю, например, offer.country.name или region.country.name, и мое приложение выполняет отдельный запрос БД:by-id, хотя я уже все их загрузил.После этого я выполняю запрос через: include, и идентификаторы этого случая, генерируемые энергичной загрузкой, не зависят от того, загружен ли я этими данными с другим запросом по идентификатору или нет.
Итак, я хочукакой-то кеш.Например, я могу сгенерировать хэши с ключами в качестве идентификаторов записей в моем before_filter, а затем вызвать @countries [offer.country_id] .name.В этом случае мне кажется, что мне не нужна загрузка, и здесь легко включить Rails.cache.Но, может быть, есть какое-нибудь умное встроенное решение для рельсов, которое не требует переписывания всего?