2013-02-20 85 views
0

僅當car.created_at> 6.months.ago時纔可以使用validates_uniqueness_of汽車嗎?Ruby On Rails validates_uniqueness_of範圍和日期範圍

在我的情況下,

validates_uniqueness_of :car, :scope => [:dealer_id, :type], :on => :create 

應允許創建一個汽車爲同一dealer_id並與同類型只有最後創建的車用這個數據創造了更多的則6.months.ago

回答

1

你可以做這樣的事情。

validate :be_a_new_car, :on=>:create 

def be_a_new_car 
old_car = self.class.where(:car=>self.car,:dealer_id=>self.dealer_id,:type=>self.type) 
      .where("created_at < ?",6.months.ago).first 
self.errors.add(:car, "not old enough to be unique") if old_car 
end 
+0

是的,它是解決方案之一,但這將運行分貝兩次,我想更復雜的解決方案:/ – urbanczykd 2013-02-20 11:17:49