1
我有一个有状态的对象。这可以是:“上移”在rails中使用枚举建模状态和子状态
'scheduled', 'on-shift' or 'past'
此外,可状态:
'available', 'busy' or 'inactive'
什么是在我的Rails应用程序,这些国家建立最佳方式是什么?
是不是:
a。创建两个状态属性:
1. object_state - can take the value: 'scheduled', 'on-shift' or 'past'
2. on_shift_state - can take the value: 'available', 'busy' or 'inactive'
b。创建单个状态属性,其值可以为:
'scheduled', 'past', 'available', 'busy' or 'inactive'.
c。另一种方式。
我认为选项b将确保数据库中的逻辑一致性,但会增加查询的复杂性,例如,如果我想要搜索'on-shift'的单元,我需要搜索3种不同的状态。它也可能更难以延伸,例如如果我想在以后添加更多的州。
如果我选择b,有没有简化查询的方法?
你会建议使用任何特定的结构/方法?
注:我想使用枚举来模拟状态。
谢谢,我听说过关于状态机的好东西,尽管我认为它可能对我的应用程序来说太重了。关于如何使用宝石解决我的问题的任何具体想法?我了解如何定义状态,事件和转换,但不知道如何创建子状态或状态组。 – user3711600 2014-10-04 14:03:30