我使用Rails 3.1和Mongoid。
我使用RESTful控制器。
我有一个班级,让我们说说明。
这个类有一个属性,名为:state,有两个(可能有一天更多)有效值,例如:active和:working。
我的客户希望有N个工作版本(:工作),但只有一个:每次都有活动描述。这意味着当我#activate描述时,必须停用旧的活动描述。
问题是,我一直在使用回调方法(before_validation =>:deactivate_previous_description)。只要我尝试激活工作副本就可以了。但是当我对:活动描述执行相同操作时,它会被取消激活,因为回调会将其状态切换回:working。
我做错了什么?有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
任何acts_as_state_machine(aasm)宝石似乎都比重新实现更好。