Создание таблицы без первичного ключа primary key id в Ruby on Rails
В миграции Ruby on Rails для создания таблицы без первичного ключа (primary_key) id, например, для таблиц, предназначенных для объединения в связи has_and_belongs_to_many, необходимо при вызове create_table указать параметр id: false :
create_table :table_name, id: false do | t | ...
при этом параметр primary_key игнорируется, даже если он указан.