我正试图干这一点,但无法弄清楚语法可能是什么。我有两个字段,我想有条件地验证存在:链接和文本。如果另一个不是#present ?,则每个都应该要求存在,但如果另一个是#present,则需要缺席?
这是我能得到它的最短时间,让每个领域分成两部分感觉很蠢。
validates :link,
presence: true,
unless: "text.present?",
validates_absence_of :link, if: "text.present?"
validates :text,
presence: true,
unless: "link.present?"
validates_absence_of :text, if: "link.present?"
其他人可以帮助n00b让它更干净吗?
提前致谢。
找到解决方案
我最后在here的帮助下使用了以下解决方案。
validate :either_or
private
def either_or
if !(link.blank? ^ text.blank?)
errors[:base] << "Specify a link or text, but not both."
end
end
答案 0 :(得分:0)
回答我自己的问题;)
我最后在here的帮助下使用了以下解决方案。
validate :either_or
private
def either_or
if !(link.blank? ^ text.blank?)
errors[:base] << "Specify a link or text, but not both."
end
end