我有 3 个模型:
1名教师可以拥有许多专业知识;
1位老师可以有多个房间;
1个房间可以有多位老师;
1 专长可以有很多老师;
Expertise 和 Room 之间没有关系。
我的链接表,这将是第四个模型,我存储多对多的地方有 3 列:
教师登录后,他需要为他的专长选择不同的房间,因此他单击列出的他的专长之一,然后在新页面中出现复选框,其中包含他可以选择的房间。
问题是当我保存老师时,我在链接表中创建了一条记录,但我失去了老师拥有的所有专业知识。因为我只有 1 个专业知识,关系教师 <-> 专业知识已删除所有专业知识,只保留用于分配房间的专业知识。
有关如何管理这些模型的任何提示?
我尝试通过使用has_many,但显然犯了一些我找不到的大错误。
最佳答案
A has and belongs to many 关系只存在于两个模型之间。所以在你的情况下,我的理解是你必须为这两个表做两个表,并且属于许多关系:
如果 Room 和 Expertise 之间没有关系,则不应在同一张表中找到它们!
关于ruby-on-rails - 来自 3 个不同表的 3 个 id 的多对多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869281/