Rails具有多列的静态模型

时间:2015-06-15 08:48:41

标签: ruby-on-rails

我正在阅读使用enums用于轨道中的某些静态模型,状态之类的东西可以很好地用于简单使用。

enum status: {active: 0, archived: 1}

我得到了上述内容,然后我尝试扩展一点。我现在有一个静态模型,我希望有更多列,我不太确定如何实现它。

我们说我有一个状态静态模型,但我希望为每个状态配置更多属性。 E.g:

active: {value: 0, rank: 3, description: "Activated"}
archived: {value: 1, rank: 2, description: "Archived"}
deleted: {value: 2, rank: 1, description: "Removed"}

所有数据仍然是静态的,不会改变,但是有一个属性绑定..如何使用静态模型设计模式来实现它?

2 个答案:

答案 0 :(得分:0)

最好将属性作为单个列使用 text 数据类型,您可以将内容存储为序列化哈希。例如,如果我有一个具有某些属性的书籍模型,可以使用不同的版本进行预订,那么属性列的设计就像

           :edition1: 
             noofpages: 400
             price: 420$
             isbn: ksn78n

答案 1 :(得分:0)

ActiveHash Gem允许这样做:

  

ActiveHash是一个简单的基类,允许您使用ruby哈希作为类似ActiveRecord的模型的只读数据源。   ActiveHash假设每个哈希都有一个:id键,这可能是你可能存储在数据库中的。这使您可以从ActiveHash对象无缝升级到完整的ActiveRecord对象,而无需更改应用程序中的任何代码或数据库中的任何外键。