【发布时间】:2011-02-26 09:08:56
【问题描述】:
我有一个俱乐部模型,我想在其中对会议和会员这两个实体进行建模。
实际上,这些实体之间存在两种多对多关系,因为对于任何会议,成员都可以是发言人或访客。现在我是一个面向对象的思想家,所以通常只创建两个类,每个类里面只有两个数组,但是 rails 让我在这里思考更多以数据为中心,所以我意识到我需要打破这些 M2M与我已经完成的连接表 Speakers 和 Guest 的关系,但现在我无法描述模型中的关系。
两个连接表模型都有“belongs_to :meeting”和“belongs_to :member”,我认为应该足够了。
不过,我不确定会议和成员模型。
每个人都有“has_many:guests”和“has_many:speakers”,但我不确定我是否也想去: has_many :members, :through => :guests has_many :members, :through => :speakers
但我怀疑这就像宣布两个“成员”会发生冲突。
我也想过: has_many :guests, :through => :guests has_many :speakers, :through => :speakers
这有意义吗? ActiveRecord 怎么知道他们实际上是成员?
我发现了很多多态 m2m 关系和 1 个表引用自身的 m2m 关系的示例,但是没有好的示例可以帮助我模拟这种情况,即两个单独的表具有两个不同的 m2m 关系。
有人有什么建议吗?
【问题讨论】:
标签: ruby-on-rails activerecord many-to-many ruby-on-rails-3