Rails和ActiveRecord的新手,不知道如何通过多级关系模型应用验证。我搜索过的所有教程都可以在一个模型中进行验证。
如何验证多个关系模型?
假设我有多个模型,一个名为 field
的模型在体育游戏中存储不同类型的属性(例如最终得分,目标,目标等)和另一个模型< strong> value
将所有实际值(如游戏分数)存储到 field
所以我将有2个班级
class Field < ActiveRecord::Base
has_many :value
end
class Value < ActiveRecord::Base
belongs_to :field
end
如何验证value
模型中与field
对应的每个属性的值?
答案 0 :(得分: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
请阅读此内容,以确认rails 3中的新颖性,即link text