Je suis en train de modéliser une publication. Une publication peut avoir plusieurs auteurs et éditeurs. Comme il est possible qu'une personne est un auteur d'une publication et rédacteur en chef d'un autre, pas de modèles distincts pour les auteurs et éditeurs:habtm plusieurs fois avec le même modèle
class Publication < ActiveRecord::Base
has_and_belongs_to_many :authors, :class_name=>'Person'
has_and_belongs_to_many :editors, :class_name=>'Person'
end
Le code ci-dessus ne fonctionne pas, car il utilise la même table de jointure. Maintenant, je maintenant que je peux préciser le nom de la table de jointure, mais il y a une mise en garde dans la documentation de l'API est un avertissement à ce sujet que je ne comprends pas:
: join_table: Indiquez le nom du joindre la table si la valeur par défaut basée sur l'ordre lexical n'est pas ce que vous voulez. AVERTISSEMENT: Si vous remplacez le nom de la table de l'une ou l'autre classe, la méthode table_name DOIT être déclarée sous n'importe quelle has_and_belongs_to_many déclaration dans pour pouvoir travailler.
http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off –