rails有很多本身

时间:2014-03-25 15:30:32

标签: sql ruby-on-rails

有一些类似于我的问题,但不是我正在寻找的

rails many to many self join

Many-to-many relationship with the same model in rails?

我的情况就像是有很多朋友的用户。

class User
  has_many connections
  has_many friends, through: connections, class_name: 'User'
end

class Connection
  belongs to :user
  belongs to :friend, class_name: 'User'
end

这让我非常接近,我能做到:

first = User.create
second = User.create

first.friends << second
first.friends # => [ second ]

我希望连接能够双向进行

first.friends << second
second.friends # => [ first ]

问题是“friends”查询正在寻找User的user_id的连接,然后找到所有的friend_id。由于没有与“second”的user_id连接,“second”没有连接。

我在想两种解决方案。 1)创建第一个连接时,使用user_id =“second”创建另一个连接。 2)覆盖“friends”方法以生成一个可以解决它的SQL查询。

对此有何想法?感谢。

1 个答案:

答案 0 :(得分:0)

你可以这样做

first.friends << second
second.friends << first

通过这个你将拥有两个或你可以建立第二个关系rayn style