2016-08-18 2 views
0

Ich habe ein Modell mit Validierungen und ich möchte eine Validierung, die nur überprüft wird, wenn ein anderes Feld in der gleichen Form wahr ist (es ist ein Boolean). Ich habe Probleme mit der Syntax dieser Validierung. Bisher habe ichValidierung von Feld mit wenn Option Mongoid

class Reportapproval 
    include Mongoid::Document 

    field :manager_requested, type: Mongoid::Boolean, default: false 
    field :disclosure_acceptance, type: Mongoid::Boolean, default: false 

    validates_acceptance_of :disclosure_acceptance, if: :manager_requested == true, :accept => true 

end 

Was die richtige Syntax ist so, dass diese Validierung nur, wenn das manager_requested Feld markiert ist, wird auf true gesetzt.

P.S. Ist es möglich, das manager_requested-Feld zu überprüfen, wenn dieses zum Zeitpunkt der Eingabe erstellt wird.

Antwort

1

Versuchen Sie, eine lambda oder das Bestehen der Methode

validates_acceptance_of :disclosure_acceptance, if: lambda { manager_requested? } 

oder

validates_acceptance_of :disclosure_acceptance, if: :manager_requested? 
+0

Dank der erste große arbeitete mit! – SupremeA

Verwandte Themen