Railsの中間テーブルを利用して多対多の関係を実現する方法を記載します。多対多の関係とは?記事から見るとカテゴリーを複数持っているので、記事に対して、カテゴリーは多になります。カテゴリーから見ると1カテゴリーに複数の記事が関連しているので、カテゴリーから見ると記事は多になります。この関係が多対多になります。この記事の上部へスクロールして、パンくずリストをご覧ください。Railsや初心者向けというような複数のカテゴリーが設定されています。Railsのカテゴリーに複数の記事が設定されています。これが多対多の関係になります。中間テーブルを利用し多対多の関係を実現します。以下に3つのサンプルテーブルを記載しています。3上記の用にcategoryarticleテーブルでcategoryidとarticle_idをレコードで紐付け、多対多の関係を実現します。categoryarticleのテーブル(中間テーブル)でarticleid=2とcategoryid=1とcategoryid=2の紐づけを行っているからです。Modelのアソシエーションの関連性設定マイグレーションファイルは以下の様に記載して、マイグレーションを実行します。endendその後は中間テーブルのModel(CategoriesArticleModel)を設定します。CategoriesArticleModelでArticleのModelとCategoryのModelを関連付けます。trueを設定する必要があります。サンプルコードなので記載していませんが、外部キー設定をお願いします。次はArticleModelの設定です。categories_articlesというkeyをつけます。throughオプションによりarticles経由でcategoryにアクセスできるようになります。上記設定で、articles.categories_articlesで記事に関連するカテゴリーを取得できます。次はCategoryModelの設定です。:categories_articlesというkeyをつけます。これもcategory.categories_articlesで、カテゴリーに属する記事へアクセス可能になります。Modelの設定は以上になります。viewで値を表示する際は繰り返し処理で呼び出しを行わないとエラーになります※値を取得できなかった場合の処理も記載する必要がありますが、こちらは割愛しております。category_idsを受け取って登録処理が行われます。end下記フォームでは1記事に対して複数のカテゴリーを設定できるようにしています。その為、collectioncheckboxesで複数選択できるようにしています。引数の項目はcategory_idsと複数形にし、controllerのストロングパラメーターで受け取ります。