私は、子の属性を検証するために親からの値を使用する必要がある単純な親子関係を持つ 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
2つの異なることを検証できるようにしたい。まず、rubric_range について、range_min 値が親 rubic.min_score に対して >= であり、range_max <= 親 rubric.max_score に対してであることを検証します。
次に、他の rubric_ranges に固有の最小値/最大値があることを検証したいと思います。つまり、同じ値に対して 2 つの rubric_ranges を定義することはできないため、1 つが 0 ~ 2 をカバーする場合、別のものがその範囲に 0、1、または 2 を含んではなりません。例: 最初の範囲は 0 ~ 2 です。2 ~ 4 の範囲を定義する場合、親のスコープ内で検証エラーを発生させたいと考えています。
助けてくれてありがとう。