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 ;)
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à