Изменить свой ключ кеширования;сделайте что-то вроде: users_#{user.id}
;
Тогда вам нужно будет удалить этот ключ при обновлении пользователя.
Кроме того, ваш метод user_details должен выглядеть примерно так:
def user_details
@_user_details ||= Rails.cache.fetch("users_#{user.id}") do
user.profiles.includes(":asso_1,:asso_2,:asso_3")
end
return @_user_details
end
(я не уверен, почему вы хотите это в @_user_details
, но я сохранил это как ваш пример)
Ваша пользовательская модель должна выглядеть примерно так:
class User < ApplicationRecord
...
after_update { Rails.cache.delete(cache_key) }
def cache_key
"users_#{self.id}"
end
def details
Rails.cache.fetch(cache_key) do
self.profiles.includes(":asso_1,:asso_2,:asso_3")
end
end
end