我正在努力了解模型关联以及如何正确设置它们。我希望这里的人知道如何做,并且我可以解释我想要完成的工作。
我的用户模型如下所示:
has_many :companies
has_many :contacts
belongs_to :company
用户可以创建公司并属于公司。它还可以从电子邮件提供商(例如Google)导入联系人。因此,它可以有很多联系。
然后我们有了公司模型:
belongs_to :admin, class_name: 'User', foreign_key: 'user_id'
has_many :users
has_many :categories
has_many :contacts
公司属于管理员,即创建它的用户。但是,它也可以有多个属于公司的用户(他们受到管理员的邀请)。它还具有管理员可以创建的类别-属于公司。它还可以具有联系人,联系人将放入类别的内容(类别是联系人的组)。
然后我们有类别。它们是由公司的管理员(用户)创建的。
belongs_to :company
has_many :contacts
类别存储所有联系人。
最后是联系人:
belongs_to :user
belongs_to :company
联系人属于用户(将其导入的用户),但是它们也是公司资产的一部分(与用户执行的所有操作一样),但不一定需要属于类别的一部分。他们可以-并且也可以是几个类别的一部分。
我敢肯定有一些缺陷,我现在想修复我的关联,这样我就不会最终在错误的结构上构建大量代码。
希望有人可以帮我解决关于如何清理这个相对较大的应用程序的新手问题
我会改变一些事情:
在company
模型中,更改has_many :contacts
为has_many :contacts, through: :categories
。似乎categories
只能将联系人分组在一起。因此:
在contact
模型中,添加belongs_to :category
和删除belongs_to :company
Users
并且contacts
如果auser
想要导入则不必关联contacts
。如果您不需要此关联,或者将与拥有相同的has_many :categories
和has_many :contacts, through: :categories
关系,我将完全删除该关联companies
。当然,请移开belongs_to :user
触点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句