salut !
j’essaye de faire un self join pour une table “User” , j’ai deux
relations pour les entites de cette meme table : has_many et belongs_to
un enfant ( User ) belongs_to un parent ( User ) , un parent has_many
enfants.
voici le bout de code que j’ai :
class User < ActiveRecord::Base
belongs_to :parent,:class_name => “User”
has_many :enfant,:class_name => “User” ,:foreign_key => “id”
sur ma console je teste la creation d’un parent , d’un enfant et je
joigner le parent à cet enfant.apres un get de l’enfant je peux
recuperer le parent , mais je peux pas recuperer l’enfant d’un aprent :
j’ai comme User le parent lui meme.
qu’est ce qui marche pas dans mon code ? est ce qu’il y a un example
complet pour ce cas ?
merci
has_many :enfant,:class_name => “User” ,:foreign_key => “id”
j’ai pas de Rails sous la main pour tester, mais ca me choque un peu ce
“id” dans le foreign_key. c’est pas “parent_id” qu’il faut mettre ?
gUI
Le 12/03/10 13:29, Anass L. a écrit :
salut !
Bonjour,
class User< ActiveRecord::Base
belongs_to :parent,:class_name => “User”
has_many :enfant,:class_name => “User” ,:foreign_key => “id”
qu’est ce qui marche pas dans mon code ? est ce qu’il y a un example
complet pour ce cas ?
Ta foreign_key doit être le parent_id pour que cela fonctionne.
Par contre avec ta modélisation, un enfant ne peut avoir qu’un seul
enfant, c’est normal ?
–
Martin C. || fuse
http://www.noremember.org
Guillaume B. wrote:
has_many :enfant,:class_name => “User” ,:foreign_key => “id”
j’ai pas de Rails sous la main pour tester, mais ca me choque un peu ce
“id” dans le foreign_key. c’est pas “parent_id” qu’il faut mettre ?
gUI
meci pour ta reponse , mais meme avec ce changement de la foreign_key
j’ai toujours le meme problem cà d : d’un enfant je peux recupere le
parent, mais à partir de ce parent j’ai comme enfant le parent lui meme.
je comprend pas encore ce qui cloche.
Salut,
Personnellement, j’ai utilisé acts_as_tree, et associé au parent_id,
tout a fonctionné du premier coup.
http://api.rubyonrails.org/classes/ActiveRecord/Acts/Tree/ClassMethods.html
En espérant que ça puisse t’aider 
Le 12/03/10 16:06, Anass L. a écrit :
meci pour ta reponse , mais meme avec ce changement de la foreign_key
j’ai toujours le meme problem càd : d’un enfant je peux recupere le
parent, mais à partir de ce parent j’ai comme enfant le parent lui meme.
je comprend pas encore ce qui cloche.
As tu rechargé l’application ? Tu as exactement le comportement standard
en laissant id en foreign_key.
–
Martin C. || fuse
http://www.noremember.org
j’ai pas rechargé l’application , j’utilise la console pour mes test
dans ce cas.
j’ai essayé differentes combinaisons mais ça marche pas encore
voici ma migration pour la table Users
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :nom
t.string :prenom
t.date :dateNaissance
t.string :adress
t.string :email
t.string :role
t.binary :photo
t.timestamps
end
end
bien sure l’id se cree automatiquement “Id”
voici le model :
class User < ActiveRecord::Base
belongs_to :parent,
:class_name => “User”
has_many :etudiant,
:class_name => “User” ,
:foreign_key => “parent_id”
Bonjour,
2010/3/12 Anass L. [email protected]
bien sure l’id se cree automatiquement “Id”
Oui mais la colonne “parent_id” ne se crée pas toute seule, elle
Il
faut
bien un endroit où stocker, pour chacun de tes users, quel est l’id de
son
parent, non ?
Jean-Baptiste
Le 12/03/10 17:30, Anass L. a écrit :
j’ai pas rechargé l’application , j’utilise la console pour mes test
dans ce cas.
Fais un reload! en console. Si ça ne fonctionne pas, poste ta migration
car il nous manque des informations.
–
Martin C. || fuse
http://www.noremember.org
oui , c’exactement ce qui manquait , merci pour ton aide
je suis un debutant sur ROR 
mais dans la doc , ils ne precicent pas qu’il faut avoir ces colonnes (
avec du bon sens on comprent que c’est justifié ) , j’ai pensé que ROR
est assez intelligent pour deviner les id 
merci encore.
Le 12 mars 2010 20:58, Anass a écrit :
Hello,
oui , c’exactement ce qui manquait , merci pour ton aide
je suis un debutant sur ROR 
mais dans la doc , ils ne precicent pas qu’il faut avoir ces
colonnes ( avec du bon sens on comprent que c’est justifié ) ,
j’ai pensé que ROR est assez intelligent pour deviner les id 
Rails ne lit pas encore dans les pensées ni n’écrit encore
les migrations automatiquement pour toi.
C’est une feature prévue pour Rails 5.0.
Autant dire qu’il faudra faire preuve d’un peu de patience.
– Jean-François.
–
http://www.twitter.com/underflow_
http://www.rubyfrance.org