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
on 2010-03-12 13:29
on 2010-03-12 13:36
> 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
on 2010-03-12 13:38
Le 12/03/10 13:29, Anass Leo 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 Catty || fuse http://www.noremember.org http://www.synbioz.com
on 2010-03-12 16:06
Guillaume Betous 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.
on 2010-03-12 16:55
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/Ac... En espérant que ça puisse t'aider :)
on 2010-03-12 17:20
Le 12/03/10 16:06, Anass Leo 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 Catty || fuse http://www.noremember.org http://www.synbioz.com
on 2010-03-12 17:30
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
on 2010-03-12 17:33
Le 12/03/10 17:30, Anass Leo 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 Catty || fuse http://www.noremember.org http://www.synbioz.com
on 2010-03-12 17:40
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"
on 2010-03-12 18:42
Bonjour, 2010/3/12 Anass Leo <list-incoming@andreas-s.net> > 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
on 2010-03-12 20:58
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.
on 2010-03-12 22:20
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
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.