У меня есть две таблицы с отношением "многие ко многим", которые я использую 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 allработает как нужно.
Учитывая вышесказанное, что является предпочтительным способом создания таблиц соединения в рельсах без первичного ключа?
Я также пытался использовать "has_many: bars,: through =>:foo "и наоборот, но получил сообщение об ошибке что-то вроде" неопределенного метода 'klass' для nil: NilClass ".