【发布时间】:2013-04-09 22:33:46
【问题描述】:
我有一个Users 模型,希望用户能够Subscribe 到另一个User,以便在他们发布内容时收到通知。
这有点像 has_many 自联接和 many_to_many 自联接。
我需要能够输入@user.subscribers 和@user.subscriptions。
因此,默认情况下,某种意义上的关系是双向的。但是,如果@user1subscribes 到@user2,那并不意味着@user2 是subscribed 到@user1 但是,@user2 可以通过@user.subscribers 找到@user1。
我见过 Ryan Bates Railscast on Self-Referential Associations。但是,这会创建 1 种方式的自联接。但我认为这并没有留下双方之间可能存在两种关系的事实。
不过,我也见过The Rails Guide on association foreign keys.
我意识到我可能会采用 Ryan Bates 的方式,只建立两个关系,但这似乎是错误的,但我担心第二种方式不会允许一个成为订阅者,一个成为提供者。解决这个问题的最“正确”方法是什么?
【问题讨论】:
标签: ruby-on-rails has-many self-join has-and-belongs-to-many