[Ruby on Rails] Implementierung einer Validierung, die nur funktioniert, wenn die Bedingungen erfüllt sind

In Ruby on Rails gibt es eine Szene, in der Sie eine Validierung schreiben möchten, die nur funktioniert, wenn eine bestimmte Bedingung erfüllt ist. Die Lösung hat einige Zeit in Anspruch genommen. Im Folgenden wird gezeigt, wie eine Validierung geschrieben wird, die nur funktioniert, wenn eine bestimmte Bedingung erfüllt ist.

Überblick

Beschreibung der Validierung, die nur gültig ist, wenn der Wert der Spalte X des Datensatzes, den Sie registrieren möchten, a ist

Konkretes Beispiel

Wenn im folgenden Beispiel der Wert der Spalte public_flag (Typ: Ganzzahl) in der Produkttabelle 1 ist, Dies ist ein Beispiel für die Auferlegung einer Einschränkung, dass die Spalte Produktname (Name), Produktbeschreibung (Beschreibung) und Produktpreis (Preis) der Produkttabelle nicht registriert werden kann, wenn sie leer sind.

In den folgenden Fällen ist es möglich, sich in der Produkttabelle zu registrieren, wenn der Wert von public_flag 0 ist, auch wenn die Werte für Produktname (Name), Produktbeschreibung (Beschreibung) und Produktpreis (Preis) leer sind.

model(product.rb)

 with_options presence:true, if: :isProductPublicable?  do |v|
   v.validates :name
   v.validates :description
   v.validates :price
 end

 #public_true, wenn flag 1 ist
 def isProductPublicable?
  public_flag == 1
 end

with_options ist eine Option, mit der Sie mehrere Validierungen gleichzeitig anwenden können. isProductPublicable? Gibt true zurück, wenn der Wert der Spalte public_flag 1 ist.

Recommended Posts

[Ruby on Rails] Implementierung einer Validierung, die nur funktioniert, wenn die Bedingungen erfüllt sind
(Ruby on Rails6) Anzeige der Datenbank, die die ID der Datenbank erhalten hat
[Ruby on Rails] Implementierung einer ähnlichen Funktion
[Rails] Implementierung einer Validierung, die die Eindeutigkeit beibehält
Ruby on Rails Wenn Sie die Ursache für das Zurücksetzen beim Speichern nicht kennen.
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
[Ruby on Rails] Bis zur Einführung von RSpec
Wenn das Ruby on Rails-Terminal zurückrollt
[Ruby on Rails] Implementieren Sie ein Kreisdiagramm, das den Prozentsatz der Farben angibt
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
Erklärung von Ruby auf Schienen für Anfänger ⑥ ~ Erstellung der Validierung ~
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
Zusammenfassung der Ruby on Rails-Validierung
[Ruby on Rails] Nur den Benutzer, der Beiträge verfasst hat, dürfen bearbeiten
Alle Inhalte der Listenseite löschen [Ruby on Rails]
Ein Hinweis zum Seed-Feature von Ruby on Rails
[Hinweis] Über das Fizz_Buzz-Problem (Funktionsweise von Ruby on Rails)
Grundkenntnisse in Ruby on Rails
[Ruby on Rails] Ändere das Speicherziel von Gem Refile * Hinweis
[Ruby on Rails] Posting-Funktion, die nur angemeldete Benutzer posten können
[Ruby on Rails] Implementierung der Kommentarfunktion
Fälle, in denen Benutzer beim Bearbeiten einer App abgemeldet sind (Rails)
Das Problem, dass der Inhalt von Parametern vollständig in der Ansicht [Rails] angezeigt wird
So lösen Sie die lokale Umgebungskonstruktion von Ruby on Rails (MAC)!
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Ruby on Rails] Einführung der Anfangsdaten
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
[Ruby on Rails] Japanische Fehlernotation
Erklärung von Ruby auf Schienen für Anfänger ①
[Ruby on Rails] So machen Sie das Linkziel zu einem Teil der angegebenen ID
So beheben Sie Fehler, die beim Integrationstest "Ruby on Rails" auftreten
[Java] Wo befindet sich die Implementierungsklasse der Annotation, die in BeanValidation vorhanden ist?
[Ruby on Rails] So japanisieren Sie die Fehlermeldung des Formularobjekts (ActiveModel)
[Rails] Implementierungsverfahren, wenn der Buchungsfunktion öffentliche / private Funktionen hinzugefügt werden
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Empfehlung der Serviceklasse in Ruby on Rails
Veröffentlichen Sie die mit Ruby on Rails erstellte App
Ruby on Rails ~ Grundlagen von MVC und Router ~
[Ruby on Rails] Ein Memorandum mit Layoutvorlagen
Ruby on Rails Implementierung der automatischen Mail-Sendefunktion
Bestimmen Sie die aktuelle Seite mit Ruby on Rails
Ruby on Rails So implementieren Sie die automatische Adresseneingabe
[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen
[Ruby on Rails] Wenn beim Registrieren von Daten doppelte Datensätze vorhanden sind, registrieren Sie sich nicht
[Ruby on Rails] Wenn der Befehl heroku ausgeführt wird, wird der Befehl bash: heroku: nicht gefunden angezeigt. [Rails Tutorial]
Bibliothek nicht geladen, wenn versucht wird, die Ruby-Version und die Schienen zu aktualisieren