Je travaille dans Ruby on Rails 3. Et essaye de tracer trois modèles qui imitent les données d'une entreprise ses employés et leurs départements respectifs.Association du modèle entre l'entreprise, l'employé et le département
En arrivé à la solution suivante:
class Company < ActiveRecord::Base
has_many :departments
has_many :employees, through => :departments
end
class Department < ActiveRecord::Base
belongs_to :company
has_many :employees
has_one :department_description
end
class DepartmentDescription < ActiveRecord::Base
belongs_to :department
end
class Employee < ActiveRecord::Base
belongs_to :department
end
Est-ce la « bonne » façon d'associer ces modèles?
Il n'y a aucune raison (étant donné le contexte que vous avez fourni) pourquoi vous devriez avoir une table/un modèle séparé juste pour le 'département'': description'. Ajoutez cette colonne à 'Department' et supprimez la relation' has_one' sur ': department_description' – deefour
True Je n'ai ajouté aucun contexte. Mais le cas étant le has_many: employees, through =>: départements fait effectivement de la table department-table (DB) une table de jointure, où la DepartmentDescription (nom, email, etc.) sera redondante. –