nobu blog

プログラミングやゲームの話など。

*



多対多の関係性の初期データの作成方法

   

概要

RailsのActiveRecordで多対多のデータを定義した時のデータ作成方法のメモ。
SQL自分で書きたいマンには、SQLが見えない形で抽象化されると、最初は違和感があり大変であった。

データ前提

記事とカテゴリ(レビュー,日記など)のデータがあり、多対多のアソシエーションを持つとする。
throughで指定するフィールドは先に指定する必要がある。(article_categorys)

下記のような中間テーブルを作るとする。
rails g model Article_Category article:references category:references

作成方法

この時にseed.rdで初期データを作成する時のメモになる。
関係を持つテーブルのIDを列挙してそれを中間テーブルに突っ込めば良いだけ。

外部キーの削除に関して、中間テーブルに対してdependent: :destroyを付与する事で削除可能になる。
付与していない状態で、article_categorysにidを持つ状態でArticleをdestoryをした時には外部参照エラーとなる。

 - Ruby on Rails