Ich habe ein Modell StudentProductRelationship
. Ich füge einen benutzerdefinierten ValidatorWann wird die Validierungsmethode in Rails aufgerufen?
validate :validate_primary_product , :if => "!primary_product"
Das Verfahren ist
def validate_primary_tag
unless StudentProductRelationship.exists?(:primary_product => true, :student_id => student_id)
errors.add(:base,"There is no primary product associated to product")
else
end
end
primary_product
ist ein boolean Feld. Ich möchte das Vorhandensein von mindestens einem echten primary_product
für student_id
validieren. Das Problem ist, wenn ich ein StudentProductRelationship
Objekt habe sagen spr
mit primary_product = true
. Wenn ich spr.update_attributes(primary_product: false)
mache. Die Validierung führt nicht zu einem Fehler, da StudentProductRelationship.exists?(:primary_product => true, :student_id => student_id)
existiert, weil spr
noch in db mit primary_product = true
existiert. Wie übertreffe ich das?
Nein. Nicht Präsenz Ich brauche es, um wahr zu sein. Das würde auch 'false' behandeln oder? – Codernx123