У меня есть приложение rails, где я реализую кэширование с использованием memcached и dalli.Rails cache получить все значения хэша
Я хранение результатов в хэше, как этот
Rails.cache.write("home_stays[#{home_stay['id']}]", home_stay, expires_in: 5.minutes)
Я могу принести значение для конкретных хоумстей, используя его идентификатор.
Что меня смущает, так это как я могу получить все домашние задания из кеша.
Если я запустил Rails.cache.fetch («home_stays»), я получаю нуль.
Есть ли способ получить все значения кэшированного хэша в рельсах?
обновление: Согласно предложению Chakreshwar, я добавил следующее в модели homestay.
def self.home_stay_cache
Rails.cache.fetch("all_home_stays",expires_in: 5.minutes) do
all
end
end
на Беговой HomeStay.home_stay_cache я получаю следующее
Cache read: all_home_stays ({:expires_in=>300 seconds})
Cache generate: all_home_stays ({:expires_in=>300 seconds})
NameError: undefined local variable or method `all' for Homestay:class
Пробовал это и получил Cache r ead: all_home_stays ({: expires_in => 300 секунд}) Cache generate: all_home_stays ({: expires_in => 300 секунд}) NoMethodError: undefined метод 'all 'для # <Заказы :: HomeStaysController: 0x0000000735b3d8> from (pry): 13: in 'block in index ' – RamanSM
Попробуйте обновленный ответ –
Не работает! получил ноль. – RamanSM