2015-08-18 2 views
1

У меня есть модель рельсов, в которой изображение загружается с помощью Paperclip.Скрепка, проверяющая, когда нет прикрепления

Я добавил подтверждение размера изображения.

validates_attachment-size :image, less_than => 5.megabytes 

При попытке сохранить модель, когда нет привязанности он проверяет изображение, которое отсутствует и срывается сохранить.

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

ответ

0

Попробуйте использовать следующий код.

validate :image_present 

def image_present 
    if image.present? && image_file_size < 2.megabytes 
    errors.add(:file_size, "file size must be between 0 and 2 megabytes.") 
    end 
end 

Здесь проверка будет работать, если изображение присутствует в модели, и будет пропускать проверку, если нет изображения.

+0

Хороший ответ Aswathy :) –

1

В первую очередь у вас есть опечатка в вашем коде. validates_attachment-size должно быть validates_attachment_size.

Вы хотели сделать:

validates_attachment_size :image, less_than => 5.megabytes 

Этот встроенный помощник будет работать в обычном режиме. Но эта проверка приведет к проверке фактического вложения, означает, что она не будет работать, если изображение отсутствует.

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

validate :image_presence_and_size 

def image_presence_and_size 
    if image.present? && image_file_size < 5.megabytes 
    errors.add(:file_size, "file size must be less than 5 megabytes.") 
    end 
end 

 Смежные вопросы

  • Нет связанных вопросов^_^