0

Ich versuche, so etwas wie zu tun:Rails: Validate Attribut Präsenz für mindestens einen Datensatz in jeder Gruppe

validates :primary_product, presence: { scope: :student_id } 

Es kann mit dem gleichen student_id mehrere Zeilen sein. Für die Menge aller Zeilen (mit gleichem student_id) sollte mindestens ein Wert von primary_product vorhanden sein. Das scheint nicht zu funktionieren. Ich bin mir nicht sicher, ob ich den Bereich mit Anwesenheit anwenden kann.

+0

'bestätigt: primary_product, wenn: STUDENT_ID'? Wenn nicht, können Sie eine detailliertere Ausarbeitung geben? – potashin

+0

Es kann mehrere Zeilen mit derselben 'student_id' geben. Für die Menge aller Zeilen sollte mindestens ein Wert von 'primary_product' vorhanden sein. – Codernx123

Antwort

0

Sie können versuchen, die folgenden, mit benutzerdefinierten Validierung:

validates :primary_product, if: -> x { 
    where.not(primary_product: nil).exists?(student_id: x.student_id) 
} 
Verwandte Themen