У меня есть переменная экземпляра модели, в которой я храню описания, которые будут "в основном" статичными по всему приложению.
Код выглядит так
def self.get_lastname(client_id)
@client_by_lastname ||= Client.select(:id, :lastname)
.map{|e| e.attributes.values}
.inject({}){|memo, client| memo[client[0]] = client[1]; memo}
return @client_by_lastname[client_id] if @client_by_lastname[client_id]
result = Client.select('lastname').where('id = ?',client_id)
return @client_by_lastname[client_id] = result[0].lastname
end
По сути.При первой загрузке он хранит клиентов и их фамилии в массиве.Однако клиент «может» менять фамилию время от времени, когда клиент покупает другая организация.Идентификатор клиента остается прежним, но имя и фамилия будут изменены.Когда это происходит, эта клиентская фамилия в приложении оказывается неверной, и нам, по сути, приходится перезапускать приложение для сброса переменной экземпляра.
Должен быть способ сброса этих переменных экземпляра, чтобыони перезагружаются при следующем запросе.Затем я поместил бы обратный вызов after_save в файл клиента при изменении имени или фамилии и перезагрузил бы эту переменную экземпляра.
Как можно "обновить" переменную экземпляра?