Мои пользователи могут выбирать между использованием URL-адреса изображения или загрузкой изображения. Однако один из них необходим.validates_presence_of, если другое не пусто
Как использовать validates_presence_of :url
с «если не используется :image
». И наоборот.
Мне удалось заставить это работать; Но, очевидно, это не сработает. Потому что он добавит проверку, если другой нет. Я смущен тем, как получить ТОЛЬКО ОДИН из обоих для ввода.
validates_presence_of :url, if: Proc.new { |a| a.pictogram.blank? }
validates_presence_of :pictogram, if: Proc.new { |a| a.url.blank? }
EDIT: Я установил его с
validate :addImageValidation
def addImageValidation
if !url.blank? && !image.blank?
errors.add(:image, "both not empty")
end
end
Вы можете использовать меньшее количество операторов ', если URL .blank? == image.blank? ', проще читать таким образом. – jimworm