Essaye de mettre :

class Project < AR::B
has_many :companies, :through => :users
end

Après tu peux faire :
project.companies

Et pour ton select du coup :
collection_select :ton_form, :company_id, @companies, :id, :name

Michel Belleville


2009/8/3 Matthieu Humbrecht <[email protected]>

>
> 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 à