У меня есть метод before_save, который я вызываю и который переименовывает загруженное изображение.
before_save :randomize_file_name
def randomize_file_name
extension = File.extname(screen_file_name).downcase
key = ActiveSupport::SecureRandom.hex(8)
self.screen.instance_write(:file_name, "#{key}#{extension}")
end
Этот метод является частью моей Item
модели.
Это прекрасно работает, когда я создаю новый элемент или мне нужно обновить изображение, связанное с элементом ... но проблема в том, что если мне нужно обновить элемент, но НЕ изображение, метод randomize_file_name
все равно запускается и переименовывает файл в базе данных (хотя, очевидно, не в сам файл).
Итак, я думаю, мне нужно найти способ запустить randomize_file_name
, только если файл включен в отправку формы ... но я не уверен, как это сделать.