J'ai 3 modèles. Users
, Groups
, Employees
tous les trois ont beaucoup à beaucoup.Aide avec Rails ActiveRecord gestion des requêtes
-
utilisateur
- a de nombreux groupes
- groupes ont de nombreux utilisateurs
- groupes ont beaucoup d'employés
- employés ont beaucoup de groupes
J'ai donc créé deux nouveaux modèles:
Departments
(gère plusieurs à plusieurs entreUsers
etGroups
)Employments
(poignées plusieurs à plusieurs entreGroups
etEmployees
)
Je crois avoir ce correct sur le papier, mais je ne peux pas descendre au code correctement car je suis nouveau sur les rails. Pour cette raison, l'extraction de données ne semble pas correcte.
C'est ce que j'ai: Emploi:
class Employment < ActiveRecord::Base
belongs_to :group
belongs_to :employee
end
Département:
class Department < ActiveRecord::Base
belongs_to :group
belongs_to :user
end
utilisateur:
class User < ActiveRecord::Base
has_many :departments
has_many :groups, :through=>:departments
has_many :employees, :through=>:departments, :source => :group
end
Groupe:
class Group < ActiveRecord::Base
has_many :departments #new
has_many :users, :through => :departments #new
has_many :employments
has_many :employees, :through => :employments
end
Employé:
class Employee < ActiveRecord::Base
has_many :employments
has_many :groups, :through => :employments
end
Je pense que le plus grand problème que j'ai est de savoir comment obtenir total employees
pour un utilisateur. Dans sql, il travaillerait avec cette requête:
select * from employees where id in (select employee_id from employments where group_id in (select group_id from departments where user_id = 4))