Yop,
J’ai les 4 tables suivantes :
class Project < ActiveRecord::Base
has_many :project_permissions, :dependent => :destro
has_many :users, :through => :project_permissions
belongs_to :company
class User < ActiveRecord::Base
belongs_to :company
has_many :projects, :through => :project_permissions
has_many :project_permissions, :dependent => :destroy
class Company < ActiveRecord::Base
has_many :users, :dependent => :destroy
has_many :projects, :dependent => :destroy
has_many :jobs, :through => :company_jobs
has_many :company_jobs, :dependent => :destroy
class Job < ActiveRecord::Base
has_many :companies, :through => :company_jobs
has_many :company_jobs, :dependent => :destroy
(les tables company_jobs et project_permissions sont des tables de
jointure)
Pour franciser tout ceci, en gros, un projet appartient à une entreprise
et a plusieurs utilisateurs (lesquels appartiennent à différentes
entreprises).
Une entreprise peut offrir plusieurs services (Jobs) et un service peut
être fait dans différentes entreprises.
Le cadre étant posé, voici mon soucis :
Je souhaite afficher dans un select_box toutes les entreprises d’un
projet.
J’ai donc créer une petite méthode dans Project.rb :
def get_companies
self.users.find(:all).collect{|p| [p.company.name, p.company_id]}
end
Cette méthode a pour but de faire un tableau de tableaux pour la
select_box.
Exemple:
[ [Entreprise 1, id1], [Entreprise 2, id2, [Entreprise 3, id3]]
Seulement, lorsqu’une entreprises fournit plusieurs services, elle peut
avoir plusieurs utilisateurs.
Et à ce moment, dans mon tableau apparait plusieurs fois le même nom de
l’entreprise.
Du coup, ma select_box est composée de doublons (dans le cas de 2
services) ou plus…ce qui est assez gênant.
Je ne vois pas comment corriger ça
Merci d’avance pour vos conseils