我需要一个用于消息私有系统和订单状态系统的状态机。
你可以看到这两个宝石:
https://github.com/pluginaweek/state_machine
https://github.com/rubyist/aasm
编辑..
我正在将 mongoid 与 mongodb 数据库一起使用
什么宝石最适合此功能?
我需要一个用于消息私有系统和订单状态系统的状态机。
你可以看到这两个宝石:
https://github.com/pluginaweek/state_machine
https://github.com/rubyist/aasm
我正在将 mongoid 与 mongodb 数据库一起使用
什么宝石最适合此功能?
更新:
查看最近的 RailsCast:状态机之旅
上一个答案:
这两个 gem 运行良好,与 Mongoid 兼容,并且得到积极维护。
我过去使用过 AASM,它的使用时间更长,但是 state_machine gem 具有更多的功能和更多的选项。例如检查 state_machine 在基类上生成的方法(在他们的例子下面);您可以定义更多细节,例如转换回调、条件转换;您可以进行路径分析,甚至还有一个 GraphViz 生成器来生成状态图的精美图片。
如果您只需要一个简单的状态机,则可以使用 AASM。如果您需要建模更多细节,例如条件转换或转换回调、路径分析、对状态进行大量查询,或者需要嵌套状态机,那么请使用 state_machine gem。
参考:
AASM:https ://github.com/aasm/aasm
state_machine:https ://github.com/pluginaweek/state_machine
关于 state_machine 的附加信息:
http://www.pluginaweek.org/2009/03/08/state_machine-one-machine-to-rule-them-all/
http://rdoc.info:8080/github/pluginaweek/state_machine/master/StateMachine/Machine