我在我的应用程序中使用了devise和Pundit。我有很多用户,例如学生,教师,管理员,编辑。我在用户设计模型中添加了枚举角色。现在我不了解的部分是-学生将具有自己的属性,同样,教师也将具有自己的属性。例如,学生将有学校名称,而老师将有课程。现在,如果我将所有内容放到用户模型中,我将有许多空值。我如何使用该角色为每个学生,教师,赞助者创建模型,以便我可以添加拥有各自学生,教师,赞助者模型的那些额外属性。任何帮助将不胜感激
枚举角色:[:老师,:学生,:赞助人,:管理员]
预期结果:具有一个模型,该模型具有与模型本身相关的属性。例如。学生将在其模型中而不是用户模型中具有列名School。
答案 0 :(得分:0)
感谢您的发帖!我也在寻找指南。
class User < ApplicationRecord
has_one :profile
has_many :classrooms
enum role: [:teacher, :student, :sponsor, :admin]
end
a。这是否意味着所有角色都具有关联中的属性?
b。对于STI ...是否意味着子类中的所有关联都将为空?
class Teacher < User
has_many :classrooms
end
谢谢!