UserとTeamの関連をMember(ship)にするとか、適切な名前があればそれがいい。
問題なのは適切な名前がない場合。
昔、それぞれのテーブルの複数形をアルファベット順に繋げるという規約を聞いたことがあった。(teams_usersみたいにする)
ただ、ソースを覚えてなかったので改めて調べた。
日本語は、Railsの基礎知識 - - Railsドキュメント などすぐに見つかった。
これはどこから来てるのか?
公式ガイドのhas_and_belongs_to_many
のところに記述があった。
http://guides.rubyonrails.org/association_basics.html#creating-join-tables-for-has-and-belongs-to-many-associations
http://railsguides.jp/association_basics.html#has-and-belongs-to-many%E9%96%A2%E9%80%A3%E4%BB%98%E3%81%91%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E7%B5%90%E5%90%88%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B
has_and_belongs_to_many
は純粋な結合用のテーブル(モデルを持たない)を使った関連。
:join_table
オプションで指定しなければ、先述のルールのテーブル名が利用される、と。
適切な名前がないようなケースでは、中間テーブルが情報を持つのはおかしいだろうから、そもそもhas_and_belongs_to_many
を使うべきだったのか…。