我正在尝试在我的项目中扩展Shift模型的功能。 我有两种类型的班次Ashift和Bshift,它们与Shift直接相关。
我的困惑源于如何在Shift中建立关联。这就是我所拥有的:
我要说的是Shift具有一个或另一个依赖的shift类,但没有两个,也没有。
class Ashift < ApplicationRecord
belongs_to :shift
end
class Bshift < ApplicationRecord
belongs_to :shift
end
class Shift < ApplicationRecord
has_one :ashift
has_one :bshift
end
我确定association guide中明确列出了这一点,但是我已经阅读了好几次,但我还是很困惑。
has_one或has_many是否引用模型的每个实例或整个Model类?有没有其他更好的方法?
答案 0 :(得分:1)
使用有一个,STI readmore about this here
class TheShift < ApplicationRecord
belongs_to :shift
end
class Ashift < TheShift
end
class Bshift < TheShift
end
class Shift < ApplicationRecord
has_one :theshift
end