gpt4 book ai didi

ruby-on-rails - Rails 根据关联记录进行验证

转载 作者:行者123 更新时间:2023-12-04 04:36:42 25 4
gpt4 key购买 nike

我有两个类,Deposit 和 Bid,它们关联为:

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。我也尝试过使用代码块,但也无法使其正常工作。我猜部分问题是记录尚未完全创建,但我找不到有关该问题的任何信息。

这种基于关联记录值的验证应该如何进行?

最佳答案

通过使用 validate(注意:单数)添加您自己的验证方法。

class Bid < ActionRecord::Base
validate :my_thing

def my_thing
unless self.my_condition
errors.add :field, :message
end
end
end

参见 http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations

关于ruby-on-rails - Rails 根据关联记录进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19629813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com