Nicolas :
> Je me pose une question sur la façon de faire quand dans une table
> vous avez plusieurs clé étrangères qui doivent pointer sur la même
> table. Exemple :
> - un objet pays
> - un objet personne
> Dans l'objet personne vous avez les infos nationalité, et pays de
> résidence. les 2 pointent sur la table pays. Comment faites vous
> puisque la convention veut que la clé s'appelle pays_id mais vous ne
> pouvez avoir 2 champs pays_id je me disais donc qu'on peux avoir
> - un premier champs pays_id pour lequel on indique la relation
> has_one :pays (utilisant la convention de nommage)
> - un deuxième appelé par exemple pays_res_id pour lequel on sépcifie
> la relation has_one :pays_res, class_name=> "Pays", foreign_key=>
> "pays_res_id"
>
> et pour l'objet pays on aurait les relations belongs_to réciproques
Ouais, tu y es presque.
Rapidement, ça doit donner ça :
class Pays < AR::B
has_many :personnes
has_many :residents, :class_name => 'Personne', :foreign_key =>
'pays_residence_id'
end
class Personne < AR::B
belongs_to :pays # pays_de_naissance est plus clair
belongs_to :pays_de_residence,
:class_name => 'Pays',
:foreign_key => 'pays_residence_id'
end
attention aux singulier/pluriel avec pays.
-- Jean-François
--
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---