У меня есть метод 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
только в том случае, если файл включен в представление формы... но я не уверен, как это сделать.