STI rails has_many在一种类型上

时间:2013-05-30 14:42:37

标签: ruby-on-rails ruby activerecord

我有一个名为Person的STI,我有3种类型:ContactUserTenantContactTenant属于一个组织,因此他们在“人员”表格中有一个organization_id列。

问题是类型User可能有多个组织,因此它有一个名为“users_privileges”的专用表。目前,“人员”表中的organization_id对于null类型为User,因为许多用户都有两个组织。

当我说Person.all时,是否有人告诉ActiveRecord,对于User类型,它不能检查表“people”中的列organization_id并查找“_”中的has_many users_privileges“table?

1 个答案:

答案 0 :(得分:0)

您可以通过在每个子类中设置正确的关系来实现此目的,因此您可以在Contact和Tenant中放置belongs_to,同时将其中一个has_many变体放入User。

结果当然是,如果你说Person.all,一些结果对象会回复#organizations,有些#organization。您可以通过向Contact和Tenant添加方法#organizations来解决此问题,并让它只返回数组中的一个组织。