【发布时间】:2018-08-17 08:20:42
【问题描述】:
我已经为此纠结了一天多,所以我们开始吧:
我有一个用户模型。但是有 3 种类型的用户(实际上更多,但让我们完成这个)。假设有人才、经理和董事。但他们都是用户。一个经理有很多人才,人才有一个经理。董事有多名经理,经理有一名董事。 Talent 通过 Manager 拥有一名董事。
显然,对于三个独立的模型,这将是微不足道的。但他们都是用户,有必要将他们保留在 User 模型中。
最简单的方法是什么?如果我必须使用宝石,就这样吧,但我宁愿不...
谢谢!
【问题讨论】:
-
是的,我明白了。谢谢。为了清楚起见,迁移时不需要其他任何东西 - 只需创建一个用户表,然后按照描述构建类?
-
是的,您将只有一个表
users,然后您将添加一列type,这将帮助您区分您正在创建的user的类型。 -
是的,检查 STI
-
要清楚我现在做的事情是正确的——当我需要的时候,说 Talent to belongs_to a Manager,我现在必须在 User 表中添加一个 manager_id 列,对吗?然后,经理、董事等就不会使用该列了……看起来有点乱,但这就是必须要做的吗?
标签: ruby-on-rails database rails-activerecord