Может быть достаточно просто иметь кэшированный метод класса.Подобные вещи пригодятся для содержимого раскрывающихся списков, которые изменяются так редко, что они так же хороши, как статические:
class Country
def self.cached_list
@cached_list ||= self.all
end
end
Имейте в виду, что переменные экземпляра класса будут сохраняться в течение всего срока службысам класс.В среде разработки это один запрос, но в производственном процессе это все запросы к одному и тому же процессу.