2014-04-20 87 views
0

在我的驗證,我已經用過一次像什麼的oppposite「如果:?屬性」(Rails4 /活動記錄驗證)

validates :contact_name, presence: true 
validates :contact_adress, 
       presence: true, if: :contact_name?, 

現在有條件的存在,我想這樣做相反的:規定屬性的義務不存在其他屬性。如果我讓A爲空,那麼B必須填滿,反之亦然。

會這樣嗎?

validates :attribute_A, presence true, if:attribute_B! 
validates :attribute_B, presence true, if:attribute_A! 
+0

不會做,除非魔? – Saurabh

回答

1

您可以使用unless.blank?

validates :attribute_A, presence true, if: :attribute_B.blank? 

OR

validates :attribute_A, presence true, unless: :attribute_B 
1

validates

文檔也有可能與驗證一起使用的選項列表:

...

:unless - 指定的方法,PROC或字符串來確定驗證是否不應該發生(例如unless: :skip_validationunless: Proc.new { |user| user.signup_step <= 2 })。方法proc或string應該返回或計算爲truefalse值。

但是,它可能會更清楚使用if:Object#present?Object#blank?幫助。