我是Rails的新手,我正在尝试构建一个应用程序,其中一个用户可以有多个组织,其中可以包含许多人员反过来可以有很多项目。
这些是我的模型(它有意义吗?):
用户---<公司---<人---<项目
现在我的关键问题是如果一个人根本不属于任何公司会怎样?我的应用程序是否仍然可以工作,我仍然可以访问项目,例如像......
current_user.persons.projects
......尽管没有公司?
在Rails中建模这些表可能有一种相当简单的方法,但由于某种原因,我无法理解这一点。谢谢你的帮助。
答案 0 :(得分:1)
人与组织不是等级关系。它似乎是一个,但它不是。这是一张图。
组织可以拥有0个以上的子组织。随着时间的推移,它可以拥有0+名员工,而且一个人可以同时为多个组织工作。
您也可以向个人或组织出售或购买,因此您必须将它们建模为相同的超类型。
这被称为Party模型,我建议你在开始之前阅读它。
答案 1 :(得分:0)
答案 2 :(得分:0)
通过关联,您可以设置一个结构,如ge0man在答案中所述。
使用validations,您可以确保在保存/更新之前模型具有所需的正确属性。
如果你没有,你调用像User.projects这样的函数,它将只返回一个空数组,因为没有找到列出给该用户的项目:)
答案 3 :(得分:0)
现在我的关键问题是如果一个人不属于将会发生什么 任何公司都可以?我的申请是否仍然有用,我还会 能够访问项目,例如像......
回答您的关键问题是:是的,任何用户都可以访问属于没有公司的人的项目:
Project.all