recreate_versions!используя метод уникального имени файла, указанный в вики - PullRequest
4 голосов
/ 04 декабря 2011

Я пытаюсь использовать method recreate_versions!, но я использую метод из вики для создания уникальных имен файлов. Проблема в том, что когда я запускаю recreate_versions!, он меняет имена файлов, но не обновляет их на самом монтированном объекте. Как я могу обновить эти URL?

Ответы [ 2 ]

11 голосов
/ 16 октября 2012

Решение, которое работает при работе с кэшированием, - это сохранение подключенного объекта после воссоздания версий:

Пример:

avatar.image.recreate_versions!
avatar.save!

Таким образом, вы можете продолжать использовать уникальные имена файлов даже при воссоздании версий и правильно обрабатывать кэширование.

3 голосов
/ 30 января 2012

Вот что у меня сработало. Он использует имя файла, если оно уже существует. Таким образом, они не меняются, когда вы воссоздаете_версии!

def filename
  if original_filename
    if model && model.read_attribute(:avatar).present? #or whatever you call your column
      model.read_attribute(:avatar)
    else
      # create new filename however you're doing it
    end
  end
end
...