У меня есть две таблицы с отношением "многие ко многим", которые я использую has_and_belongs_to_many для определения ассоциации.
class Foo < ActiveRecord::Base
...
has_and_belongs_to_many :bar
...
end
class Bar < ActiveRecord::Base
...
has_and_belongs_to_many :foo
...
end
У меня также есть класс, определенный для представления объединенной таблицы
class BarFoo < ActiveRecord::Base
...
belongs_to :foo
belongs_to :bar
...
end
Когда я запускаю rake db: seed я получаю следующую ошибку:
Primary key is not allowed in a has_and_belongs_to_many join table (bar_foo)
Если я редактирую базу данных и удаляю поле первичного ключа (ID) из таблицы bar_foo, а затем повторно запускаю rake db: seed, все работает по желанию.
Учитывая вышеизложенное, каков результат предпочтительные средства создания таблиц соединений в рельсах без первичного ключа?
Я также пробовал использовать has_many: bars,: through =>: foo и наоборот, но получил сообщение об ошибке вроде «undefined method 'klass' for nil : NilClass ".