Ich bin ein Rails Noobie und ich versuche, die Unterschiede zwischen der Ablehnung einer Instanz basierend auf einem leeren Attribut und das Erstellen einer Validierung, die das Attribut prüft vorhanden ist, zu sortieren.Verschachtelte Attribute: Warum validieren Sie verschachtelte Modelle, wenn Sie reject_if verwenden?
Die Schüler haben viele Prüfungen. Ein kritisches Attribut einer Prüfung ist die Punktzahl. Ohne diese sollte die Prüfung nicht in die Datenbank aufgenommen werden.
Meine Prüfung Modell hat die folgende Zeile:
validates :score, presence: true
Mein Schüler-Modell hat dies:
accepts_nested_attributes_for :exams,
:reject_if => proc { |exam| exam['score'].blank? }
Es scheint, dass das zweite Beispiel leise „verwirft“ die Prüfung aus in die Datenbank eingegeben werden , während das erste Beispiel eine Fehlermeldung ausspuckt und Sie auffordert, es erneut zu versuchen.
Aber wirklich, was ist der Unterschied hier .... es scheint, dass beide letztlich verhindern, dass eine Instanz in die Datenbank eingegeben wird - würde ich jemals von der Einbeziehung beider Linien profitieren?