2010-11-25 186 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