RoR:模型验证问题

时间:2020-03-06 15:01:35  来源:igfitidea点击:

我有一个基本的ActiveRecord模型,其中有两个要验证的字段。要求是至少一个字段必须具有一个值。两者都可以具有值,但是至少一个需要一个值。

我该如何表达

validates_presence_of

陈述?例如:

validates_presence_of :main_file
validates_presence_of :alt_file

我不希望仅当其中一个为空时才生成错误,前提是两者都为空。

解决方案

validates_presence_of :main_file, :if => Proc.new { |p| p.alt_file.blank? }
validates_presence_of :alt_file, :if => Proc.new { |p| p.main_file.blank? }

更改.nil?到.blank?绝招!