0
我有一个会议模型,其中有许多参与者。每个参与者可以针对会议采取多种行动(注册,接受,拒绝等)。会议状态(待定,确认等)取决于每个参与者的最新动作及其属性(过期日期等)。设计模式:Rails中子状态父项的聚合状态
例如,如果所有参与者都接受,则会议状态将为“已确认”。但是,如果会议确认后,一位参与者提出新的时间(因时间冲突),则会议现在变为“待定”。
我应该如何在会议中模拟状态?我应该序列化(即在事件表中创建一个latest_state列)当前状态吗?如果是这样,我该如何使用基于子对象行为的状态机?
谢谢。
对不起
self.status_changed?
将返回true
,不知道我明白。会议状态仅取决于每个参与者的最近行动? “行动”包括什么? –例如,如果所有参与者都接受,则会议状态将被确认。但是,如果确认后,一位参与者提出新的时间(由于时间冲突),那么会议现在正在等待。等等。 – AdamNYC