2013-10-28 75 views
1

我有兩個類,存款和Bid,其被相關聯:Rails的驗證基於相關聯的記錄

class Bid < ActiveRecord::Base 
    belongs_to :deposit 
end 

class Deposit < ActiveRecord::Base 
    has_many :bids 
end 

的沉積具有被設定在創建一個固定的量。出價也有金額,我試圖使用驗證來確保bid.amount小於它所屬的存款金額。

我試圖通過實現這一點:

class Bid < ActiveRecord::Base 
    validates :amount, numericality: { only_integer: true, less_than_or_equal_to: self.deposit.amount } 
end 

但它給了我NoMethodError。我也試過使用一個代碼塊,但無法讓它工作。我猜測問題的一部分是記錄還沒有完全創建,但我找不到任何關於該問題的信息。

基於關聯記錄值的這種類型驗證應該如何完成?

回答