This seems so easy but I keep hitting a brick wall on this.

I have this modeling:

class User < ActiveRecord::Base
   has_many :friendships
   has_many :friends, :through => :friendships #...
 end
  
 class Friendship < ActiveRecord::Base
   belongs_to :user
   belongs_to :friend, :class_name => 'User', :foreign_key => 'friend_id'
end

I have these 2 records in the friends table

user_id, friend_id
3 4
3 5

Now when I try to select all friends that belong to User of id 3, using this select I get one record instead of 2:

@users = User.find:all, :include=>[:friendships], :conditions=>["friendships.user_id=?",3])

Any ideas how I can model this and query this correctly to get both records belonging to User 3?

Thanks a whole lot!

Clem

Usually I do User.find(3).friends

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.