Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion

Legen Sie die Validierung in den Spalten Name und E-Mail des Benutzermodells fest

Ich beziehe mich auf die Rails-Anleitung und so weiter. https://railsguides.jp/active_record_validations.html

【Was du machen willst】 ・ Lassen Sie Ihren Namen und Ihre E-Mail-Adresse leer, damit Sie sich nicht registrieren können ・ Zeichenbegrenzung für Name und E-Mail-Adresse

Der Punkt ist ① "Anwesenheit: wahr" → Registrierung im Leerzeichen verbieten ② "Länge: {Maximum:}" → Länge länger als die nach ":" festgelegte Zahl verbieten.

Sie arbeiten an der Datei app / models / user.rb. Ich habe den folgenden Code erstellt.

class User < ApplicationRecord
  validates :name,  presence: true, length: { maximum: 20 }
  validates :email, presence: true, length: { maximum: 300 },
end

Überprüfen Sie die Rails-Konsole, um festzustellen, ob sie funktioniert. Zuallererst, wenn ich versuche, mich in der Lücke zu registrieren. .. ..

> User.create(name: "", email: "")
   (0.3ms)  BEGIN
   (0.4ms)  ROLLBACK
 => #<User id: nil, name: "", email: "", created_at: nil, updated_at: nil>

Es ist nicht von ROLLBACK registriert.

Wenn Sie versuchen, einen langen Namen oder eine E-Mail-Adresse zu registrieren, sehen Sie, dass dies auch ROLLBACK ist (der mit ... gekennzeichnete Teil in der E-Mail-Spalte ist zu lang, um im Artikel angezeigt zu werden).

> user = User.create(name: "a"*25 , email: "b"*350 + "@test.com")
>  (0.3ms)  BEGIN
>  (0.4ms)  ROLLBACK
=> #<User:
     id: nil,
     name: "aaaaaaaaaaaaaaaaaaaaaaaaa",
     email:"[email protected]",
     created_at: nil,
     updated_at: nil>

Bei der Anzeige des Grundes für den Fehler. .. ..

> user.errors.messages
> {:name=>["is too long (maximum is 20 characters)"],
 :email=>["is too long (maximum is 300 characters)"]}

Ich konnte bestätigen, dass "Länge: {Maximum:}" ordnungsgemäß funktioniert.

Übrigens scheint der maximale Teil auf verschiedene Arten anwendbar zu sein. (Aus der Rails-Anleitung unten)

class Person < ApplicationRecord
  validates :name, length: { minimum: 2 }
  validates :bio, length: { maximum: 500 }
  validates :password, length: { in: 6..20 }
  validates :registration_number, length: { is: 6 }
end

:minimum:Das Attribut kann keinen kleineren Wert als diesen Wert annehmen.
:maximum:Das Attribut kann keinen Wert annehmen, der größer als dieser Wert ist.
:in oder:within:Die Länge des Attributs muss innerhalb des angegebenen Intervalls liegen. Der Wert dieser Option muss ein Bereich sein.
:is:Die Länge des Attributs muss dem angegebenen Wert entsprechen.

Recommended Posts

Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
Zusammenfassung der Ruby on Rails-Validierung
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
Erklärung von Ruby auf Schienen für Anfänger ⑥ ~ Erstellung der Validierung ~
[Ruby on Rails] Paging-Funktion eingeführt
[Ruby on Rails] CSV-Ausgabefunktion
[Ruby on Rails] Implementierung der Kommentarfunktion
[Ruby on Rails] DM, Chat-Funktion
[Ruby on Rails] Implementieren Sie die Anmeldefunktion von add_token_to_users mit API
[Ruby on Rails] Suchfunktion (nicht ausgewählt)
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
Erklärung von Ruby auf Schienen für Anfänger ①
[Ruby on Rails] Implementierung einer ähnlichen Funktion
[Ruby on Rails] Logisches Löschen (Auszahlungsfunktion)
[Ruby on Rails] Select2-Einführungsnotiz für Webpacker
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby on Rails Implementierung der automatischen Mail-Sendefunktion
[Rails] Verfahren zum Verknüpfen von Datenbanken mit Ruby On Rails
Ruby On Rails Association
[Ruby on Rails] Nachbearbeitungsfunktion (Aktualisieren, Löschen)
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
[Ruby on Rails] Post-Score-Ranking-Funktion (gesamte Anzeige)
[Ruby on Rails] Post-Bildvorschau-Funktion in Refile
Erklärung von Ruby on Rails für Anfänger ② ~ Links erstellen ~
[Ruby on Rails] Suchfunktion (Modell, Methodenauswahlformel)
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Ruby on Rails lernen Rekord-2020.10.07 ①
Brechen Sie die Ruby on Rails-Migration ab
Ruby on Rails Lernrekord -2020.10.06
Ruby on Rails Grundlegendes Memorandum
[Ruby on Rails] So implementieren Sie die Tagging- / inkrementelle Suchfunktion für Posts (ohne Gem)
[Rails] Einstellungen zum Laden von Web-Schriftarten in CloudFront mit Heroku
Ruby on Rails Einstellung der automatischen E-Mail-Sendefunktion (über Google Mail)
[Ruby on Rails] Lesezeichenfunktion (bevorzugte Registrierung, wie): Eine Richtung
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
Ein Hinweis zum Seed-Feature von Ruby on Rails
Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~