我有这个验证:
if self.var_a.blank? || self.var_b.blank? || self.var_c.blank?
self.errors[:base] << "Error."
end
如果三个变量都设置了,或者三个变量都没有设置,那么一切正常。但是如果设置了 3 个或 3 个中的 2 个,我需要显示错误。
我在一段时间内与这个问题作斗争,但无法有效地编写它。
我有这个验证:
if self.var_a.blank? || self.var_b.blank? || self.var_c.blank?
self.errors[:base] << "Error."
end
如果三个变量都设置了,或者三个变量都没有设置,那么一切正常。但是如果设置了 3 个或 3 个中的 2 个,我需要显示错误。
我在一段时间内与这个问题作斗争,但无法有效地编写它。
if [var_a,var_b,var_c].any?{|m| m.blank?}
self.errors[:base] << "Error."
end
或者
self.errors[:base] << "Error." if [var_a,var_b,var_c].any?(&:blank?)
我在这里猜测语法(不知道 ruby).. 但逻辑应该是这样的:
if [var_a,var_b,var_c].any?{|m| m.blank?} && ![var_a,var_b,var_c].all?{|m| m.blank?}
self.errors[:base] << "Error."
end