[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe

introduction

environnement

Chose que tu veux faire

Créer une correspondance d'utilisation des bureaux pour les auberges Je souhaite autoriser les utilisateurs à choisir leurs hôtels préférés De plus, hotel_favorite a déjà été modélisé.

Méthode

Je veux que le modèle hotel_favorite ait user_id et hotel_id. (User_id est déjà associé)

Ce que j'ai fait

rails g migration AddhotelidTohotel_favorites

→ XXXXXXX_add_hotel_ref_tohotel_favorites.rb a été créé. Je l'ai édité comme suit.

XXXXXXX_add_hotel_ref_tohotel_favorites.rb


class AddHotelRefTohotelFavorites < ActiveRecord::Migration[6.0]
  def change
    add_reference :hotel_favorites, :hotel, null: false, foreign_key: true
  end
end

ici

rails db:migrate

Hotel_id a été ajouté à hotel_favorite comme indiqué ci-dessous.

schema.rb


  create_table "hotel_favorites", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4", force: :cascade do |t|
    t.datetime "created_at", precision: 6, null: false
    t.datetime "updated_at", precision: 6, null: false
    t.bigint "user_id", null: false
    t.bigint "hotel_id", null: false
    t.index ["hotel_id"], name: "index_hotel_favorites_on_hotel_id"
    t.index ["user_id"], name: "index_hotel_favorites_on_user_id"

Résumé

A partir de la prochaine fois, comme dans l'article ci-dessous, vous devriez le faire au moment de la création du modèle. .. https://qiita.com/hiro266/items/8a0374155cd18adbd7cf

rails g model hotel_favorite user:references hotel:references

Recommended Posts

[Ruby on Rails] Ajouter une colonne avec des contraintes de clé externe
Je souhaite ajouter une fonction de navigation avec ruby on rails
J'ai fait un portfolio avec Ruby On Rails
[Ruby on Rails] Créez un graphique circulaire des totaux par colonne avec Chartkick
[Ruby on Rails] Read try (: [] ,: key)
Comment renommer un modèle avec des contraintes de clé externes dans Rails
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
[Ruby on Rails] Afficher le test avec RSpec
Remarques sur l'utilisation de FCM avec Ruby on Rails
[Ruby on Rails] Test du contrôleur avec RSpec
[Ruby on Rails] Test de modèle avec RSpec
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Présentation de Rspec avec Ruby on Rails x Docker
Publiez l'application avec ruby on rails
Présentation de Rspec, un framework de test pour Ruby on Rails
[Ruby on Rails] Un mémorandum de modèles de mise en page
[Rails] Procédure de liaison de bases de données avec Ruby On Rails
(Ruby on Rails6) Création de données dans une table
Déterminez la page actuelle avec Ruby on Rails
[Ruby on Rails] Téléversement de plusieurs images avec refile
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
[Ruby On Rails] Lors de l'exécution d'un test d'unité de modèle avec RSpec à l'aide de FactoryBot, une erreur se produit car la clé externe n'est pas saisie.
[Introduction] Créer une application Ruby on Rails
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
[Ruby on Rails] Supprimer les images s3 avec Active Strage
Exécutez des tests Ruby on Rails RSpec avec des actions GitHub
[Ruby on Rails] Comment changer le nom de la colonne
[Ruby on Rails] Remplacez l'ID d'URL par le nom de la colonne
Création d'un plan de site au format RSS / Atom avec Ruby on Rails
J'ai essayé d'installer le plugin lié à Ruby on Rails avec vim-plug
Record d'apprentissage de Ruby on rails -2020.10.03
Difficultés à créer un environnement Ruby on Rails (Windows 10) (SQLite3)
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
[Ruby on Rails] Debuck (binding.pry)
Record d'apprentissage de Ruby on rails -2020.10.05
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②
Une note sur la fonction de départ de Ruby on Rails
[Ruby on Rails] Implémenter la fonction de connexion par add_token_to_users avec l'API
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Publier des vidéos sur les rails
[Rails] Ajouter une colonne à concevoir
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
[Ruby on Rails] Restrictions de colonne lors de l'enregistrement dans DB (4 représentants)
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
Record d'apprentissage de Ruby on rails -2020.10.06