Да, таблица объединения названа в честь двух таблиц, которые должны быть объединены в алфавитном порядке. Поскольку categories
в алфавите выше, чем raw_categories
, таблица объединения называется categories_raw_categories
. Обратите внимание, что если вы выполняете миграцию, вам нужно создать отдельную миграцию для этой таблицы соединений.
Подробнее об отношениях HABTM и таблицах соединений, необходимых для них, см. Здесь: http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_and_belongs_to_many
Также обратите внимание, что вы можете установить произвольное имя для таблицы соединения, если хотите. Пример (если вы хотите вызвать объединительную таблицу category_associations
):
# Category model
has_and_belongs_to_many :raw_categories, :join_table => 'category_associations'
# RawCategory model
has_and_belongs_to_many :categories, :join_table => 'category_associations'
Вы также всегда можете явно сделать таблицу соединений первоклассной моделью, используя has_many :though
на моделях, подлежащих объединению. Следуя приведенному выше примеру, вы можете сделать CategoryAssociation реальной моделью и присоединить ее к двум другим, например:
# CateogoryAssociation model
belongs_to :category
belongs_to :raw_category
# Category model
has_many :category_associations
has_many :raw_categories, :through => :category_associations
# RawCategory model
has_many :category_associations
has_many :categories, :through => :category_associations