Задать вопрос
@vadimstroganov

Можно ли получить доступ к текущему объекту в операторе if?

last_update = Page.order(updated_at: :desc).first.updated_at.to_i
if Rails.cache.fetch("#{last_update}/all_pages_cached").present?
  Rails.cache.fetch("#{last_update}/all_pages_cached")
else
  Rails.cache.fetch("#{last_update}/all_pages_cached") do
    hash # некий хэш
  end
end


Можно ли получить доступ к текущему объекту ?
Например чтобы написать так:
last_update = Page.order(updated_at: :desc).first.updated_at.to_i
if Rails.cache.fetch("#{last_update}/all_pages_cached").present?
  current_object # вот так
else
  Rails.cache.fetch("#{last_update}/all_pages_cached") do
    hash # некий хэш
  end
end
  • Вопрос задан
  • 87 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
mgyk
@mgyk
If there is no such data in the cache (a cache miss), then nil will be returned. However, if a block has been passed, that block will be passed the key and executed in the event of a cache miss. The return value of the block will be written to the cache under the given cache key, and that return value will be returned.

Rails.cache.fetch("#{last_update}/all_pages_cached") do
   hash
end


Если в кэше значения нет, то тогда выполняется блок
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы