【发布时间】:2011-04-09 11:16:17
【问题描述】:
我正在寻找一种对系统中不同类型的用户进行建模的好方法。对于注册,他/她可以选择成为学生、导师或两者兼而有之。作为学生或导师有不同的属性。学生和导师也会有不同的个人资料模板布局。
对于此类问题,您将如何设计控制器和模型?
【问题讨论】:
标签: ruby-on-rails authentication modeling
我正在寻找一种对系统中不同类型的用户进行建模的好方法。对于注册,他/她可以选择成为学生、导师或两者兼而有之。作为学生或导师有不同的属性。学生和导师也会有不同的个人资料模板布局。
对于此类问题,您将如何设计控制器和模型?
【问题讨论】:
标签: ruby-on-rails authentication modeling
我会创建一个User,它可以容纳Mentor 类和/或Student 类。这样,您的不同属性将彼此分离,而相同的属性仍保留在 User 类中。
在控制器中,您可以根据用户持有的实例呈现模板(或部分模板)。一份给学生,一份给导师,一份给两者。
您还可以使用继承(User 作为父级,Mentor、Student 和 Both 作为子级)。您要在此处查看的关键字是Single Table Inheritance。
恕我直言,问题在于这两种选择。这就是为什么我更喜欢第一种解决方案。
【讨论】: