我有两个类,存款和出价,它们关联为:
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。我也尝试使用代码块,但也无法让它工作。我猜部分问题是记录尚未完全创建,但我找不到有关该问题的任何信息。
这种基于相关记录值的验证应该如何进行?