我有一个 rails 3.2 应用程序,其中我有一个简单的父/子关系,我需要使用父级的值来验证子级的属性。模型如下所示:
class RubricItem < ActiveRecord::Base
attr_accessible :max_score, :min_score, :name, :order
has_many :rubric_ranges
end
和
class RubricRange < ActiveRecord::Base
attr_accessible :helper, :range_max, :range_min, :rubric_item_id
validates_presence_of :helper, :range_max, :range_min
validates :range_max, :range_min, :numericality => {:only_integer => true}
validates :range_max, :numericality => { :greater_than => :range_min }
belongs_to :rubric_item
end
我希望能够验证两个不同的东西。首先,对于一个 rubric_range,我想验证它的 range_min 值对于它的父 rubic.min_score 是 >= 并且 range_max <= 对于它的父 rubric.max_score。
其次,我想验证其他 rubric_ranges 是否具有唯一的最小/最大值。换句话说,不能为同一个值定义两个 rubric_range,因此如果一个覆盖 0-2,另一个则不能在其范围内包含 0、1 或 2。示例:第一个范围是 0-2,如果定义了 2-4 范围,我想在父级范围内引发验证错误。
谢谢你的帮助。