join tables, must they be created manually?

All table must be created manually or (preferably) in a migration. By
default (name conventings can be configured to some extent), habtm
expects a table named recipes_tags (alphabetical order) with a
recipe_id field and a tag_id field AND NOTHING ELSE.

So if you are creating it in a migration, you have to make sure you
don't get an id field. It's easy for that to happen since migrations
add it silently by default. You will want to add :id => false when you
call create_table in the migration

It's hard to believe they would overlook something that obvious. They
don't define the join table where they define the other tables?