设计多种型号

时间:2013-08-28 14:01:15

标签: ruby-on-rails ruby devise multiple-models

如何使用多个型号设置设计? 我已经尝试过使用rolify和cancan在我的数据库中设置不同的角色,但每个角色都有不同的方式来验证自己登录。例如,学生将拥有student_number,讲师将拥有用户名但没有student_number。 还有一些其他属性,讲师不会有学生的意思,反之亦然。

我是rails 4的新手。

2 个答案:

答案 0 :(得分:1)

在这种情况下,看起来类和继承可以派上用场。 如何定义用户模式以及让学生和讲师从该类继承?

class Student < User
  # student's peculiar attributes
end

class Lecturer < User
  # lecturer's peculiar attributes
end

然后你可以有两个独立的控制器和相应的视图。登录页面可能有两个指向正确登录页面的链接。

答案 1 :(得分:0)

我使用User模型和附加到User的“has_one”配置文件模型解决了这个问题,所有用户都使用相同的表登录,但设计加载保存在Profile中的其他数据。

其他选项仅使用用户模型,当用户不是学生时,将student_number留空。