Do I have to create the join tables?

Hello,

Suppose I have the following tables:

table X (
id
name
)

table Y (
id
name
)

And I have a many to many relation between them. So, I put in each of
the tables the “has_and_belongs_to_many”. In the real database it
should be a X_Y join table. Do I have to create that table with a
migration or the model will take care of that?

you have to create it with a migration (or by hand, phpmyadmin, or
some other software)

example:
Model 1: Post
Model 2: Authror

Join table:
authors_posts

Rule for the table name: order of model names alphabetically. both
model names pluralized

generally i suggest has_many_through over has_and_belongs_to_many, as
it let’s you access the join table thorugh it’s own model…