2010-03-15 64 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