Когда я меняю миниатюру аватара, имя файла не меняется и браузер выдает старую версию фотографии. Чтобы этого избежать, необходимо постоянно сбрасывать кеш. В качестве выхода из этой ситуации я думаю каждый раз создавать новую версию обрезанной фотографии с новым именем. Но если я задаю уникальное имя для обрезанной версии, то по какой-то причине аватар не загружается на сервер
Я пытался добавить full_filename
метод в блок версии:
version :preview do
process :crop
process resize_to_fit: [150, 150]
def full_filename(for_file = model.avatar.file)
token = SecureRandom.base58(8)
"#{token}.jpg"
end
end
Также я добавил save!
после recreate_versions!
в метод, где я обрезал аватар:
def crop_avatar
if crop_x.present?
avatar.recreate_versions!
self.crop_x = nil
save!
end
end
Это не работает. Аватар не загружается на сервер.
Но если я указываю статическое имя в имени файла вместо токена, то все работает правильно:
version :preview do
process :crop
process resize_to_fit: [150, 150]
def full_filename(for_file = model.avatar.file)
"something.jpg"
end
end
Итак, как мне установить уникальные значения для каждой версии аватара?