Inference?

I have the typical user, friendship model that does a has_many :through
Self-referential, exactly like this:

I have the following data in the friendships table

user_id = 5
friend_id = 10

User.find(5).friends gives me the user 10
User.find(10).friends gives me []

Is that right? Should I have two records for each friendship?

Thanks,

GP

User.find(5).friends gives me the user 10
User.find(10).friends gives me []

Is that right? Should I have two records for each friendship?

May want to consider using has_many_friends… really easy to setup,
some
nice helper methods tossed in as well…

http://agilewebdevelopment.com/plugins/has_many_friends

Greater point, thank you. The methods request/accept/etc work great at
the model level but when I try to expose that functionality through a
FriendshipsController unfortunately it seems to cause an infinit loop
and I end up with this in my development.log

e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;35;1mUser Load (0.000000)e[0m e[0mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;35;1mUser Load (0.000000)e[0m e[0mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;35;1mUser Load (0.000000)e[0m e[0mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;35;1mUser Load (0.000000)e[0m e[0mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;35;1mUser Load (0.000000)e[0m e[0mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;35;1mUser Load (0.015000)e[0m e[0mSELECT * FROM users WHERE
(users.id = 11) e[0m
e[4;36;1mUser Load (0.000000)e[0m e[0;1mSystemStackError: stack
level too deep: SELECT * FROM users WHERE (users.id = 11) e[0m
e[4;35;1mUser Load (0.000000)e[0m e[0mRuntimeError: Packets out of
order: 1<>3: SELECT * FROM users WHERE (users.id = 11) e[0m

Philip H. wrote:

User.find(5).friends gives me the user 10
User.find(10).friends gives me []

Is that right? Should I have two records for each friendship?

May want to consider using has_many_friends… really easy to setup,
some
nice helper methods tossed in as well…

http://agilewebdevelopment.com/plugins/has_many_friends