如何在Rails中处理多个用户类型?

5

我正在寻找一种好的方法来对系统中的用户不同类型进行建模。在注册时,他/她可以选择成为学生、导师或两者兼备。作为学生或导师具有不同的属性。学生和导师的个人资料模板布局也会有所不同。

您将如何设计控制器和模型来解决这种问题?

1个回答

3
  1. 我会创建一个User类,可以包含一个Mentor类和/或一个Student类。这样,您的不同属性就可以彼此分离,同时相同的属性仍然保留在User类中。
    在控制器中,您可以根据用户所持有的实例呈现模板(或部分)。一个用于学生,一个用于导师,一个用于两者。

  2. 您还可以使用继承(User作为父类,其中MentorStudentBoth作为子类)。您想要研究的关键词在这里是Single Table Inheritance

在我看来,问题在于“both”选项。这就是为什么我更喜欢第一种解决方案的原因。


3
“双重”子类的想法让我感到非常不自然,除非某人同时具有两种属性会产生新的性质。我明显更喜欢你的第一个解决方案。 - Marc Talbot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接