2010-03-15 47 views
0

我有一个entry.rb模型,我试图做一个半复杂的验证。我希望它需要一个或多个以下字段:电话,电话2,移动电话,传真,电子邮件或网站。你会如何编写预期的代码?会有这样的工作吗?和or运算符在Ruby on Rails模型的validates_presence_of中

validates_presence_of :phone and or :phone2 and or :mobile and or :fax and or :email and or :website 

回答

3

你不需要“和”,“或”本身就能完成你想要的。

这可能是最简单的,只需编写自己的自定义验证。

validate :contact_info 

def contact_info 
    unless phone or phone2 or mobile or fax or email or website 
    errors.add_to_base "Must have at least one form of contact info" 
    end 
end 

更多细节在这里:http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

+0

谢谢你,我感谢你的帮助。 – BasicObject 2010-03-15 23:49:37