質問: entertainersというモデルがあります。 これにはtypeカラムがあり 1:個人 2:グループ の形にしようとしています。 グループの場合にはさらに同モデルのentertainersの個人のレコードにリレーションさせたいのですが、この場合の中間テーブルは命名規則的にはどのようになるのでしょうか? 1対多の場合 entertainer_entertainers 多対多の場合 entertainers_entertainers とするのが正しいのでしょうか?
回答: `has_and_belongs_to_many`とする場合には、テーブル名・列名をルール通りにする必要があります...が、同一テーブル相手ではそれは無理です(どっちも`entertainer_id`が必要になってしまう)。 なので、中間モデルを立てての`has_many through:`が必要となりますが、この場合の中間テーブル名は**自分で好きに決めて**問題ありません。