У меня есть две таблицы со многими отношениями, которые я использую 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 метод" класс "для nil: NilClass".