我的用户可以选择使用图片网址还是上传图片。但是其中一个是必需的。
如何使用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? }
修改 我用
修复了它 validate :addImageValidation
def addImageValidation
if !url.blank? && !image.blank?
errors.add(:image, "both not empty")
end
end
答案 0 :(得分:1)
您可以编写自己的验证器:
validate :url_or_pictogram_but_not_both
def url_or_pictogram_but_not_both
unless url ^ pictogram
errors.add ...
end
end