我试图弄清楚如何做一个相互的双向关系,即:
user_id friend_id
1 2
2 1
在上面的用户1和用户2中,如果user_id = 1
friend_id = 2
friend_id = 2
和user_id = 2
{{1}}的{{1}}与表中的朋友相同,则他们就是朋友。如何统计ActiveRecord中的所有双向相互关系?
答案 0 :(得分:2)
您要找的是has_and_belongs_to_many
relationship:
class User < ActiveRecord::Base
has_and_belongs_to_many :friends, :class_name => "User",
:foreign_key => "this_user_id",
:association_foreign_key => "other_user_id"
end
示例来自§4.4.2.1。
答案 1 :(得分:1)
阅读Micheal Heartl Ruby on Rails教程的最后一章:通过示例学习Rails,他很好地解释了这些示例。这里有免费的在线版本。
https://www.railstutorial.org/book/following_users
看看最后一章。我希望它有所帮助。