2010-11-25 137 views
0

新的Rails和ActiveRecord,不知道我怎么能应用验证,虽然多层次的关系模型。我已经搜索了所有我能找到的教程都只是一个模型的验证。如何验证Rails 3关系模型?

如何验证多个关系模型?

说我有多个型号,一种模式叫field专卖店在体育比赛的不同类型的属性。(当然,最后的比分,进球失球等目标),并存储所有的实际值另一种模式value像比赛成绩进入field

因此,我将有2班

class Field < ActiveRecord::Base 
    has_many :value  
end 
class Value < ActiveRecord::Base 
belongs_to :field 
end 

我怎么能validat e value模型中每个属性的值是否与field对应?

回答

2

在Rails 3:您可以创建在你的lib目录中的文件(确保认为这个文件是由应用程序加载),放在一个类与validate方法:

class HumanValidator < ActiveModel::Validator 

    def validate(record) 
    record.errors[:base] << "This person is dead" unless check(human) 
    end 

    private 

    def check(record) 
     (record.age < 200) && (record.age > 0) 
    end 

end 

在所有要验证的模型,您可以调用验证与类这样的:

# app/models/person.rb 
class Customer < ActiveRecord::Base 
    validates_with HumanValidator 
end 

去阅读这一点,在轨验证3新奇,索里link text

+0

要自动加载lib目录中的所有文件,将config.autoload_paths + =%W(#{Rails.root}/lib)加载到config/application.rb文件中。 – plehoux 2010-11-25 02:54:12