[Ruby on Rails] Restrictions de colonne lors de l'enregistrement dans DB (4 représentants)

Contexte de la rédaction de cet article

J'ai appris qu'il existe un moyen de spécifier des contraintes lors de l'enregistrement des données pour les fichiers de migration et les fichiers de modèle, j'ai donc essayé de résumer à nouveau les validations typiques. (J'ai étudié il y a longtemps, mais je vais le résumer à nouveau en qiita.)

Environnement de mise en œuvre

macOS Catalina 10.15.7 VS Code 1.50.0 Ruby 2.6.5 Rails 6.0.0

① Contrainte NOT NULL

→ Restriction qui ne peut pas être enregistrée lorsque les données sont vides

[Comment écrire dans le fichier de migration] null: false

20200919092740_create_item.rb


t.string :address, null: false

[Comment écrire dans un fichier modèle] presence: true

item.rb


validates :address, presence: true

② Contrainte d'unicité

→ Restriction selon laquelle les mêmes données ne peuvent pas être enregistrées plus d'une fois [Comment écrire dans le fichier de migration] unique: true

20200919092740_create_item.rb


t.string :address, unique: true

[Comment écrire dans un fichier modèle] uniqueness: true

item.rb


validates :address, uniqueness: true

③ Contrainte de clé primaire

→ Restriction qui ne peut pas être enregistrée lorsque les données sont vides et que les mêmes données ne peuvent pas être enregistrées en double (Contrainte NOT NULL et contrainte unique) (Restrictions définies automatiquement pour la colonne id)

[Comment écrire dans le fichier de migration] primary_key: true

20200919092740_create_item.rb


t.string :address, primary_key: true

④ Contrainte de clé externe

→ Restriction selon laquelle les données ne peuvent être enregistrées que si les données qui deviennent la clé externe existent toujours

[Comment écrire dans le fichier de migration] foreign_key: true

20200919092740_create_item.rb


t.string :address, foreign_key: true

Recommended Posts

[Ruby on Rails] Restrictions de colonne lors de l'enregistrement dans DB (4 représentants)
[Ruby on Rails] Comment changer le nom de la colonne
[Ruby on Rails] Remplacez l'ID d'URL par le nom de la colonne
Comment utiliser Ruby on Rails
Déployer sur Heroku [Ruby on Rails] Débutant
[Ruby on Rails] Comment utiliser redirect_to
Bouton [Ruby on Rails] pour revenir en haut
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Ruby on Rails Lorsque vous ne connaissez pas la cause de la restauration lors de l'enregistrement.
Déployer sur Ruby on Rails Elastic beanstalk (déploiement EB)
Quand le terminal Ruby on Rails revient en arrière
[Rails MySQL] Comment réinitialiser la base de données sur heroku
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
[Introduction] Créer une application Ruby on Rails
Résumé des méthodes de mise à jour de plusieurs colonnes [Ruby on Rails]
[Ruby on Rails] Comment écrire enum en japonais
[Mis à jour de temps en temps] Ruby on Rails Méthode pratique
Déployer sur Ruby on Rails Elastic beanstalk (Construction de l'environnement)
Tutoriel Ruby on Rails Remarques gênantes lors de l'exécution sous Windows
[Ruby on Rails] De la construction de MySQL au changement de base de données
(Ruby on Rails6) Comment créer un modèle et une table
BasicDataSourceFactory est ClassNotFoundException lors de la connexion à DB dans Tomcat 8
Record d'apprentissage de Ruby on rails -2020.10.03
Déployer sur Ruby on Rails Elastic beanstalk (changement d'autorisation IAM)
Création de portfolio Ruby on Rails
[Ruby on Rails] Lorsque l'acquisition de l'identifiant du paramètre ne s'est pas bien déroulée
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] J'obtiens un avertissement lors de l'exécution de RSpec en raison d'une version différente de gem.
Record d'apprentissage de Ruby on rails -2020.10.09
[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe
<Installation de points> Introduction à Ruby on Rails5 Comparaison du code source
[Ruby on Rails] Élimination de Fat Controller-First, logic to model-
Que vérifier lorsque rails db: la migration ne réussit pas
Record d'apprentissage Ruby on rails-2020.10.07 ②
Comment spécifier la base de données lors de la création d'une application avec des rails
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
[Rails] Ajouter une colonne à concevoir
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
Record d'apprentissage de Ruby on rails -2020.10.06
Appliquer le CSS à une vue spécifique dans Ruby on Rails
Résumé de la validation Ruby on Rails