我正在rails中实现一个求职应用程序,用户可以注册三个不同的配置文件/角色。
用户可以选择多个个人资料/角色。
(我正在使用Devise)
我的疑问是,在上述情况下是否可以实现单表继承。如
CLass Employer < user
CLass worker < user
或者什么应该是数据库结构实现上述功能的最佳解决方案?
答案 0 :(得分:0)
是的,当然有可能,当模型共享相同的属性并且您希望能够一起查询它们时,STI被广泛使用(由于您加载了一个db表,因此有助于提高速度和简单性)。您也可以在类之间共享代码,您只需要在父类中放置一次方法并让所有子级都继承。
旁注,请确保遵循ruby命名惯例,将类大写
Class Worker < User
编辑(建议的方法)
我不会从User继承这些角色,您仍然可以使用STI但是创建另一个模型
Class User < ActiveRecord::Base
has_many :profiles
Class Profile < ActiveRecord::Base
belongs_to :user
Class Employer < Profile
Class Worker < Profile
Class Entrepreneur < Profile
答案 1 :(得分:0)