Ceci est une question distincte, mais elle est liée à une question antérieure: Three Column Join in Rails with Active Scaffold. Pour résumer: Rails recherche automatiquement une table de jointure à deux colonnes, mais elle ne fait pas la même chose pour une table de jointure à trois colonnes. J'ai essayé les suggestions dans la question précédente, mais il se résume à ceci:Nom de table Alias pour faciliter la table de jointure à 3 colonnes (MySQL ou PostgreSQL)
Si vous avez les modèles Projet, employé, rôle et chacun a une relation habtm aux deux autres, les rails feront chaque relation séparément, mais pas dans son ensemble.
class Employee < ActiveRecord::Base
#has_many :employees_projects_roles
#has_many :roles, :through => :employees_projects_roles
#has_many :projects, :through => :employees_projects_roles
has_and_belongs_to_many :roles
has_and_belongs_to_many :projects
end
répété pour le projet, le rôle suit
class Role < ActiveRecord::Base
#has_many :employees, :through => :employees_projects_roles
#has_many :projects, :through => :employees_projects_roles
has_and_belongs_to_many :employees
has_and_belongs_to_many :projects
end
Ma question est, puisque les rails semble pour employees_projects, projects_roles
et employees_roles
mais pas employees_projects_roles
est-il un moyen d'un alias ces noms au nom de la table réelle et permet toujours la fonctionnalité CRUD dans la base de données (MySQL ou PostgreSQL)?
[Éditer] Oups. Je dois arrêter de répondre et d'interroger publiquement avant d'avoir assez de café. Changé la partie commentée de hmt à habtm. Inclus a commenté une partie du code pour refléter les différentes options que j'ai essayées.
Oui, la table de joint existait, mais je ne connaissais pas l'attribut: join_table! Même avec Google googling les deux dernières semaines. Merci de votre aide! –