对不起,标题很不清楚 - 我只是不确定如何在没有解释的情况下说出问题。
我想用我的应用记录锻炼。我想要一个具有日期和sub_workout_type_id
等基本信息的锻炼表(我称之为父母)锻炼记录可以是心血管锻炼(一种模型)或强度锻炼(另一种模型)。
我的想法有3个桌子而不是2个Cario锻炼模型和力量训练模型,我可以拉动锻炼记录,然后根据需要深入挖掘任何类型的锻炼。 / p>
也许有更多红宝石的方法来做到这一点?因为现在我不知道怎么说has_one_model_or_the_other。谢谢!
答案 0 :(得分:2)
我看到两个选项,要么你使用STI(单表继承):在这种情况下,你将有一个表能够包含心血管模型或力量训练,以及类型。这只有在两个模型具有一些共同特征时才有效。
另一种解决方案是编写类似
的内容has_one :cardiovascular
has_one :strength
然后使用验证来强制只设置其中一个。
希望这有帮助。
答案 1 :(得分:0)
如@nathanvda所述,STI可能是一个不错的选择。
如果您希望在模型中存储类特定数据,可以查看Modeling inheritance with Ruby/Rails ORMs以查看该答案是否为您提供了有关如何建模此关系的任何建议。
注意,那里的示例使用has_many
,但很多想法都很相似。