2010-06-08 68 views
0

我正在开发一个rails项目,其中有一个数据模型,其中有多个字段是集合选择。我想创建另一个模型来表示所有这些集合选择字段。因此,例如,我的主数据模型有三个集合选择字段 - 一个用于县,一个用于分类,另一个用于分类。我可以将它们分成三个独立的数据模型,但这似乎是多余的,因为它们都具有相同的特征。他们有一种类型和价值,就像一个县是一个县,它有一个值得我们说索诺玛,就像类别有一个类别的类型和值得我们说的酒厂。如果你曾经使用Drupal,我基本上在寻找分类功能的行为。Rails模型来表示多个字段

所以你看到我的困境:我需要将这些字段分成三个独立的字段,但它们具有非常相似的数据结构。任何建议将大大赞赏。

回答

1

这是一个完美的案例single-table inheritance。你的问题正在尖叫。

+0

所以基本上我需要创建一个基础模型,然后为每个数据类型创建一个单独的模型,并告诉这些模型从我的基础模型继承。这似乎相当合理。 – 2010-06-08 14:45:56

+0

是的,并添加一个'type'属性,该属性是一个字符串到该基础模型,这是Rails存储正确的类以将该行从数据库中拉出时所处的位置。 – x1a4 2010-06-08 15:04:40

+0

好吧我想我得到它的大部分有它的设置,但是当我尝试显示存储的值时,它显示的是ID而不是实际值。有什么我需要做的是能够访问存储的值而不是值的id。 – 2010-06-08 15:08:08