ブログアプリ⑨(タグのテーブルを作ろう)
タグのテーブルをつくる
$ rails g model tag tag:string Running via Spring preloader in process 27600 invoke active_record create db/migrate/20181206042331_create_tags.rb create app/models/tag.rb
記事とタグの中間テーブルをつくる
$ rails g model article_tag article:references tag:references Running via Spring preloader in process 34479 invoke active_record create db/migrate/20181206042916_create_article_tags.rb create app/models/article_tag.rb
そうそう。中間テーブルを作るときにreferences型を指定して作ったら、出来上がったモデルファイルに初めからアソシエーションが記述されてた。便利ー
articleモデルと今作ったtagモデルにもアソシエーションを設定したげる
models/article.rb class Article < ApplicationRecord has_many :article_tags has_many :tags, through: :article_tags end
models/tag.rb class Tag < ApplicationRecord has_many :article_tags has_many :articles, through: :article_tags end
マイグレートする
$ bundle exec rake db:migrate == 20181206042331 CreateTags: migrating ======================================= -- create_table(:tags) -> 0.0384s == 20181206042331 CreateTags: migrated (0.0386s) ============================== == 20181206042916 CreateArticleTags: migrating ================================ -- create_table(:article_tags) -> 0.0293s == 20181206042916 CreateArticleTags: migrated (0.0294s) =======================
これで必要なテーブルができた!
次はタグを新規につけられるようにするよ