我正在阅读使用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"}
所有数据仍然是静态的,不会改变,但是有一个属性绑定..如何使用静态模型设计模式来实现它?
答案 0 :(得分:0)
最好将属性作为单个列使用 text 数据类型,您可以将内容存储为序列化哈希。例如,如果我有一个具有某些属性的书籍模型,可以使用不同的版本进行预订,那么属性列的设计就像
:edition1:
noofpages: 400
price: 420$
isbn: ksn78n
答案 1 :(得分:0)
ActiveHash Gem允许这样做:
ActiveHash是一个简单的基类,允许您使用ruby哈希作为类似ActiveRecord的模型的只读数据源。 ActiveHash假设每个哈希都有一个:id键,这可能是你可能存储在数据库中的。这使您可以从ActiveHash对象无缝升级到完整的ActiveRecord对象,而无需更改应用程序中的任何代码或数据库中的任何外键。