J'ai une application rails 3.2 dans laquelle j'ai une relation simple parent/enfant dans laquelle je dois utiliser les valeurs du parent pour valider les attributs de l'enfant. Les modèles ressemblent à ceci :
class RubricItem < ActiveRecord::Base
attr_accessible :max_score, :min_score, :name, :order
has_many :rubric_ranges
end
y
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
Je veux pouvoir valider deux choses différentes. Premièrement, pour une rubric_range, je veux valider que sa valeur range_min est >= à son parent rubic.min_score et que range_max <= à son parent rubric.max_score.
Deuxièmement, je veux valider que les autres rubric_ranges ont des valeurs min/max uniques. En d'autres termes, il ne peut pas y avoir deux plages de rubriques définies pour la même valeur, donc si l'une couvre 0-2, une autre ne doit pas inclure 0, 1 ou 2 dans sa plage. Exemple : la première plage est de 0 à 2, si l'une d'entre elles définit une plage de 2 à 4, je veux qu'une erreur de validation soit générée dans la portée du parent.
Merci pour toute aide.