Загрузка файла Rails, как узнать, отправлено ли изображение - PullRequest
1 голос
/ 22 февраля 2012

Я использую плагин file_column для загрузки изображения в форме.Имя поля изображения - «изображение».Мне нужно знать, отправляется ли файл, когда я загружаю форму (изображение необязательно).Фактически, я хочу обновить другое поле (image_updated_at) при обновлении изображения (в обратном вызове after_validation).

Итак, я просто хочу знать, отправлено ли изображение для обновления этого поля.Содержание параметров при наличии изображения:

"image"=>#<ActionDispatch::Http::UploadedFile:0x10750dae0 @tempfile=#<File:/var/folders/p1/74mh4dd95zj0lpc42zm0h0kw0000gn/T/RackMultipart20120222-7745-s7rsy4-0>, @headers="Content-Disposition: form-data; name=\"wine[image]\"; filename=\"montenero2006.jpg\"\r\nContent-Type: image/jpeg\r\n", @content_type="image/jpeg", @original_filename="montenero2006.jpg">, 

Я просто хочу проверить, отправлено ли изображение.Что тестировать вместо self.image?

after_validation :set_image_date

def set_image_date
  self.image_updated_at = Time.now() if self.image
end

1 Ответ

0 голосов
/ 23 февраля 2012

Проверка изменения атрибута db after_validation: set_image_date

def set_image_date
  self.image_updated_at = Time.now() if changes[:image_file_name]
end

Если вы не уверены в вышеуказанном решении, ниже приведено надежное решение

class Wine < ActiveRecord::Base

   def initialize(*args)
    args.merge!(:image_updated_at => Time.now) if args[:image].present?
    super
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...