いつも忘れてググるので。
下記のようにmigrationを作るとcreate_join_table
を使ってくれる。
$ rails g migration create_join_table_user_team user team
下記のような内容でできる。
class CreateJoinTableUserTeam < ActiveRecord::Migration[5.0]
def change
create_join_table :users, :teams do |t|
# t.index [:user_id, :team_id]
# t.index [:team_id, :user_id]
end
end
end
indexは必要だったら作れということでしょう。(優しい)
create_join_table
の良いところはテーブル名の順番をきにしなくて良いところです。この例でもuser、teamという順番で指定してるけど実際のテーブルは下記のようにteams_users
になってる。
# \d teams_users
Table "public.teams_users"
Column | Type | Modifiers
---------+---------+-----------
user_id | integer | not null
team_id | integer | not null