Ruby on Rails中的朋友之友

时间:2015-08-10 22:54:43

标签: ruby-on-rails postgresql activerecord

我有一个自我参与协会Friendship。用户通过友谊拥有许多朋友。我想得到朋友的朋友列表。最有效的方法是什么?我使用的是ActiveRecord。谢谢!

1 个答案:

答案 0 :(得分:2)

class User < ActiveRecord::Base

  has_many :friendships
  has_many :friends, through => :friendships, :class_name => "User"

  def friends_of_friends
    User.joins(:friendships).where(:user_id => friendships.pluck(:friend_id))
  end

end

友谊模型就像是

class Friendship < ActiveRecord::Base

  belongs_to :user
  belongs_to :friend, :class_name => 'User'

end