【发布时间】:2020-09-24 18:10:36
【问题描述】:
我有两个模型 - User 和 Network。在我的例子中,每个User 可以有多个Network,每个Network 可以有多个User,并且属于一个User(创建者)。
例如,假设User 1 有两个网络N1 和N2。网络N1 具有User 2,网络N2 具有User 3。
我想要实现的是N1 和N2 的creator 字段将给我User 1 和N1 的users 字段将给我[User 2] 和N2会给我[User 3]
我可以拥有带有外键的创建者字段,并且我知道我可以使用has_many through: 关系来确定哪些网络包含哪些用户以及哪些用户属于哪些网络。但是在那种情况下,有没有办法快速判断两个用户之间是否存在关系?
例如user2.follows? user1 之类的内容将返回true,因为User 2 属于User 1 的网络。我可以遍历User 1创建的所有网络并检查User 2是否属于它,但是有没有更好的方法?
【问题讨论】:
-
那么,您到底想通过什么来识别它们?您提供的只是用户通过网络连接,但您想在不通过网络比较的情况下识别他们?
-
@tblev 是的,基本上我希望任何属于其他用户网络的用户都将相关。
标签: ruby-on-rails database activerecord database-migration