2010-01-02 69 views
2

我有一个帖子模型has_one转贴并has_one赞助。用户可以在创建帖子时购买转贴和赞助帖子。我希望最低购买额(转贴和赞助购买总额)至少为1美元。所以我想在后期模型中验证这一点,但我不知道如何编写这样的验证规则。这里是我的发布模型:我如何验证基于相关模型计算的数据

class Post < ActiveRecord::Base 
    has_one :repost 
    has_one :sponsor 

任何帮助都不胜感激。

感谢

回答

1

你需要一个自定义的验证......这只是给你一个基本的想法,因为我不知道你的模型实际上属性是。

validate :minimum_purchase 

protected 

def minimum_purchase 
    unless ((self.repost.try(:purchase).to_i + self.sponsor.try(:purchase).to_i) == 100) 
    self.errors.add_to_base("You need to purchase at least $1!") 
    end 
end 
+0

但是购买和赞助商的数据不是在柱对象。该数据来自这样的: { [:交] => {ID = “5”, [:转贴] => {purchase =“30”}, [:sponsor] => {purchase =>“80”} }} – Ishu 2010-01-02 20:27:03

+0

已更新,以反映此情况。假设您的购买属性是美分。 – jmcnevin 2010-01-02 20:43:47

相关问题