2010-07-01 28 views

回答

2

它很簡單:

validates_uniqueness_of :a, :scope => [:b, :c], :unless => :d 
2

只是傳遞一個Proc返回true或false到:if:unless選項:(這裏假定d是模型的屬性或方法)

validates_uniqueness_of :a, :scope => [:b, :c], :unless => Proc.new { |obj| !obj.d.nil? } 
validates_uniqueness_of :a, :scope => [:b, :c], :if => Proc.new { |obj| obj.d.nil? } 

中當然,這不是唯一性的完美保證。默認情況下,存在可能允許重複的競態條件。有關更多信息,請參閱documentation

相關問題