例をあげましょう。
- 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