[RUBY] Verwenden Sie with_options, um dieselben Validierungen zu gruppieren!

Einführung

Ich werde die Validierung zusammenfassen, die bei der aktuellen Anwendungserstellung verwendet wurde.

Fassen Sie die allgemeine Validierung zusammen

with_options

Am Beispiel der häufig verwendeten Validierung

model


validates :user, presence: true
validates :item, presence: true
validates :price, presence: true
validates :email, presence: true

Es ist genau das Gleiche, es wird länger und lesbarer ... In einem solchen Fall können Sie die Validierung gemeinsam mit "with_options" festlegen.

model


with_options presence: true do
  validates :user
  validates :item
  validates :price
  validates :email
end

Verwenden von with_options weiter fortgeschritten

Fügen Sie weitere individuelle Validierungen hinzu

model


with_options presence: true do
  validates :user, length: { minimum: 6 }
  validates :item
  validates :price, format: { with: /\A[0-9]+\z/ }
  validates :email
end

Die Validierung kann einzeln in do ~ end hinzugefügt werden. Übrigens kann die Längenoption die Anzahl der Zeichen begrenzen. Die Formatoption ist eine Spezifikation für reguläre Ausdrücke.

Weiter zusammenfassen

model


with_options presence: true do
  validates :user
  validates :item
  with_options uniqueness: true do
    validates :price
    validates :email
  end
end

Sie können with_options in with_options verschachteln. Im obigen Beispiel ist Anwesenheit: wahr ist eingestellt auf: Benutzer,: Artikel,: Preis,: E-Mail, Außerdem wird "Einzigartigkeit: wahr" auf "Preis", "E-Mail" gesetzt. Die Eindeutigkeitsoption verhindert übrigens, dass Sie denselben Wert speichern können. (Einzigartigkeit)

Schließlich

Das Schreiben zusammen mit with_options ähnelt dem Gefühl, das Faktorisierungslernen, das in der Mathematik der Junior High School herauskam, allgemein zu beschreiben.

Recommended Posts

Verwenden Sie with_options, um dieselben Validierungen zu gruppieren!
Verwendung der link_to-Methode
Verwendung der include? -Methode
Verwendung der Methode form_with
Verwendung der Wrapper-Klasse
Verwendung von MinIO mit derselben Funktion wie S3 Verwenden Sie Docker-Compose
Verwendung von OrientJS und OrientDB zusammen
[Java] Verwendung der File-Klasse
[Schienen] Verwendung der Kartenmethode
[Java] Verwendung der toString () -Methode
Studieren der Verwendung des Konstruktors (Java)
[Verarbeitung × Java] Verwendung der Schleife
[Verarbeitung × Java] Verwendung der Klasse
[Verarbeitung × Java] Verwendung der Funktion
[Java] Verwendung der Calendar-Klasse
Verwendung von @Builder und @NoArgsConstructor zusammen
Verwendung des Kameramoduls OV7725 (ESP32-WROVER-B)
Wenn Sie die Methode außerhalb verwenden möchten
Ausgabe der Verwendung der Slice-Methode
Verwendung der replace () -Methode (Java Silver)
[Ruby-Grundlagen] Verwendung der Slice-Methode
Verwenden Sie die SCNIK-Einschränkung, um den Arm des Roboters frei zu animieren
[Rails] Ich weiß nicht, wie ich das Modell verwenden soll ...
[Anfänger] Entdecken Sie das N + 1-Problem! Wie benutzt man Bullet?
Java: Verwenden Sie Stream, um den Inhalt einer Sammlung zu sortieren
[Rails] Stellen Sie denselben Code mit Controller-Aktionen zusammen
Verwendung derselben Mapper-Klasse in mehreren Datenquellen mit Spring Boot + MyBatis