ruby-on-rails – state_machine vs aasm gems for rails ruby​​ on rails 3.2

我需要一个状态机用于消息私人系统和订单状态系统.

你可以看到这两个宝石:

https://github.com/pluginaweek/state_machine

https://github.com/rubyist/aasm

编辑..

我正在使用mongoid与mongodb数据库

什么宝石最适合这个功能?

解决方法

更新:

查看最近的RailsCast:A Tour of State Machines

上一个答案:

两个宝石的工作都很好,与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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...