Créer une table de jointure sans clé primaire

J'ai deux tables avec une beaucoup de beaucoup de relation que je suis en utilisant has_and_belongs_to_many à définir l'association.

class Foo < ActiveRecord::Base
  ...
  has_and_belongs_to_many :bar
  ...
end

class Bar < ActiveRecord::Base
  ...
  has_and_belongs_to_many :foo
  ...
end

J'ai aussi la classe définie pour représenter la table de jointure

class BarFoo < ActiveRecord::Base
  ...
  belongs_to :foo
  belongs_to :bar
  ...
end

Quand je lance le rake db:graines de j'obtiens l'erreur suivante:

Primary key is not allowed in a has_and_belongs_to_many join table (bar_foo)

Si j'ai éditer la base de données et supprimer le champ de clé primaire (ID) de la bar_foo table, puis réexécutez le rake db:graine tout fonctionne comme souhaité.

Donné ci-dessus, quel est le meilleur moyen de créer des tables de jointure dans les rails avec aucune clé primaire?

J'ai aussi essayé d'utiliser "has_many :bars, :par => :foo" et vice versa, mais j'ai reçu un message d'erreur quelque chose comme "undefined method 'klass' for nil:NilClass".

source d'informationauteur Keith