如何设置具有多个模型的设计?我已经尝试使用 rolify 和 cancan 在我的数据库中设置单独的角色,但是每个角色都有不同的方式来验证自己的登录身份。例如,学生将有一个 student_number,而讲师将有一个用户名但没有 student_number。还有很多其他的属性是讲师没有的,学生会,反之亦然。
我是rails 4的新手。
如何设置具有多个模型的设计?我已经尝试使用 rolify 和 cancan 在我的数据库中设置单独的角色,但是每个角色都有不同的方式来验证自己的登录身份。例如,学生将有一个 student_number,而讲师将有一个用户名但没有 student_number。还有很多其他的属性是讲师没有的,学生会,反之亦然。
我是rails 4的新手。
看起来类和继承在这种情况下可以派上用场。定义一个用户模式并让 Student 和 Lecturer 从该类继承呢?
class Student < User
# student's peculiar attributes
end
class Lecturer < User
# lecturer's peculiar attributes
end
然后你可以有两个独立的控制器和相应的视图。登录页面可能有两个指向正确登录页面的链接。
我使用用户模型和附加到用户的“has_one”配置文件模型解决了这个问题,所有用户都使用同一个表登录,但设计加载保存在配置文件中的另一个数据。
其他选项是仅使用用户模型并在用户不是学生时将 student_number 留空。