1

我已经为我的应用程序定义了数据模型,其中将包含以下特定部分:在此处输入图像描述

现在,我的特殊问题与建模“Value”有关,它是子模型“Value_Decimal”和“Value_Text”。基本上我不想拥有这种层次结构,因为它预计会有其他几种值类型,并且每个值模型都有其他几个不同的列(由于这个事实,我不考虑单表继承)。我如何使用 Rails 的 Active Record 来实现这一点,有人可以指出一些方向吗?

提前谢谢了!

4

1 回答 1

1

item_property_value表应该有一个value_type允许多态关联的列。然后,您可以为从抽象value模型(没有表)继承的各种“价值”模型创建不同的表。通过这种方式,您可以避免 STI,但仍然从一个基本模型继承。

因为该item_property_value模型结合了 3 种不同的关系,所以需要将其视为一流的 Rails 模型,这意味着它还需要 aid作为主键。然后,您可以使用has-many-through映射来访问它正在加入的实际对象。

在此处阅读多态关联。抽象类被简单地标记为:

class Value < ActiveRecord::Base
  self.abstract_class = true
end
于 2012-10-18T21:57:34.687 回答