对于代表朋友的用户模型,我有一个标准的自引用关系。这部分工作正常,但我在连接表中有一个额外的列,表示该关系的来源。
友谊模型
# Relationships
belongs_to :user
belongs_to :friend, :class_name => "User"
has_one :source
用户模型
has_many :friendships
has_many :friends, :class_name => "User", :through => :friendships
我知道我可以对用户的朋友进行 where 过滤
user.friends.where([some conditions])
我的问题是,如何获取由 Friendship 中的 :source 关系过滤的用户对象“朋友”列表?