如何验证Rails 3关系模型?

时间:2010-11-25 00:57:08

标签: validation activerecord ruby-on-rails-3

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对应的每个属性的值?

1 个答案:

答案 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