Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User < ActiveRecord::Base
- module Friends
- def common(user)
- # Define code here
- end
- end
- has_and_belongs_to_many :friends,
- :class_name => 'User',
- :association_foreign_key => 'friend_id',
- :join_table => 'friends_users',
- :extend => User::Friends
- def self.find_common(u1, u2)
- find_by_sql([<<-EOM, u1.id, u2.id])
- SELECT u.*
- FROM users u
- LEFT JOIN friends_users fu1 ON fu1.user_id = ? AND fu1.friend_id = u.id
- LEFT JOIN friends_users fu2 ON fu2.user_id = ? AND fu2.friend_id = u.id
- WHERE fu1.user_id IS NOT NULL AND fu2.user_id IS NOT NULL
- ORDER BY u.first_name
- EOM
- end
- end
Add Comment
Please, Sign In to add comment