Salut !,
J'ai deux modèles :
User:
id : integer
username : string
password : string
...
Friend:
id : integer
user_id : integer
friend_id : integer
...
Friend serait ma table de jointure entre deux table users.
ainsi je pourrais faire
user = User.find(...)
user.username # => "alice"
user.id # => 1
...
user1 = User.find(...)
user1.username # => "bob"
user1.id # => 2
...
user.friends.push(user1) # en imaginant que user1 est le premier amis
user.friends[0].username # => "bob"
Ce qui donnerait ceci dans la table friends :
id : 1
user_id : 1
friend_id : 2
Je ne peux pas utiliser has_and_belongs_to_many :users sinon j'aurais une table de jointure users_users avec deux user_id.
J'ai pensé régler le problème en créant la table Friend avec
belongs_to :user, :foreign_key => :user_id
has_one :user, :foreign_key => :friend_id
et User
belongs_to :friend
has_many :friends
mais celà n'a pas donné ce que j'attendais. Je dois faire ça pour avoir le même résultat :
user.friends.create(:friend_id => user1.id)
ami = User.find(user.friends.friend_id)
ami.username
Pourriez-vous m'aider à faire fonctionner cette foutue table de jointure ?
J'espère que vous arriverez à comprendre ce que je viens de dire ^^'
Merci.
|
il y a 2 jours 15 heures
il y a 1 semaine 3 jours
il y a 2 semaines 1 heure
il y a 4 semaines 3 jours
il y a 5 semaines 1 jour
il y a 6 semaines 2 jours
il y a 6 semaines 2 jours
il y a 6 semaines 2 jours
il y a 6 semaines 3 jours
il y a 6 semaines 6 jours