2014年6月25日

Rails で多対多のリレーションを作成する方法

Rails で多対多のリレーションを持ったテーブルを作るためには、中間テーブルの作成が必要です。

例をあげましょう。

  • User テーブル
  • Book テーブル
という二つのテーブルを多対多のリレーションで結ぶ場合、中間テーブルとして
  • BookUser テーブル
が必要となります。ちなみに、中間テーブルの名前をここでは「BookUser」としていますが、どんな名称でも問題ないはずです。

中間テーブルを意識しないアクセスを実現するには、

Book クラス内に

  has_many :book_users
  has_many :users, :through => :book_users

User クラス内に
  has_many :book_users
  has_many :books, :through => :book_users


が必要となります。



参考URI:
http://7mi.wkeya.com/archives/611
http://blog.notsobad.jp/post/70028473972/has-many-through