Using the example in the guides of categories and products:
A join table works transparently. You only work with the two existing models (Category
and Product
), and the join table exists only to enable the HABTM relationship between them, so you can call category.products
, or product.categories
, and things just work.
Generating a model, on the other hand, would only be necessary if you need to work with that association as a distinct thing in your application (e.g. if you need to do things with a Categorization
directly).
Contrast the Rails Guides description of a has_and_belongs_to_many
association (read more):
A has_and_belongs_to_many association creates a direct many-to-many
connection with another model, with no intervening model. For example,
if your application includes assemblies and parts, with each assembly
having many parts and each part appearing in many assemblies, you
could declare the models this way:

with that of a has_many :through
association (read more):
A has_many :through association is often used
to set up a many-to-many connection with another model. This
association indicates that the declaring model can be matched with
zero or more instances of another model by proceeding through a third
model. For example, consider a medical practice where patients make
appointments to see physicians. The relevant association declarations
could look like this:

So, yes, you're correct that create_join_table
would be simpler than creating a model for the association. You can also see this answer for another explanation of the difference between these approaches.