Gem 除了 state_machine 还有没有更好的?

huacnlee · 2011年12月05日 · 最后由 doitian 回复于 2012年04月24日 · 7895 次阅读

state_machine 看起来好重,而且文档写得很差。

你们用过觉得好用的是那个?

aasm 依赖 activerecord,out transitions 已经不维护了,out workflow 看起来不错,单文件代码很少,求经验 state_machine 代码最复杂,不过用户最多,功能最全(比如多个状态字),我用的话还是用这个。

我现在是在项目里面用 state_machine,感觉体验不好,还是那句话,太复杂了,我其实只是想要一个简单点的 state 同时又能将定义的东西生成 Dropdown 数据,而且又能很简单 I18n 的

#6 楼 @huacnlee state_machine 强项是状态转移,如果没有转移的需求的话可以用一个 symbol array 做状态的允许值,I18n 直接翻译这个 symbol 行了

#7 楼 @Rei 我之前一直这么做,有点烦,我是想找一个用起来更简单的

不过我印象中,只要涉及 3 个或以上状态的,不用状态机管理都会慢慢变得不可管理……建议还是上状态机

workflow 跟 state_machine 我都用过. 感觉 workflow 用起来简单一些。 除了定义 state 和 transition 之外。 transition callback 直接用方法就行

def submission_processing
end

这样就好了

我都用 aasm ...

只用过 workflow,感觉很好用。

#6 楼 @huacnlee 也许你需要的是一个数据字典表,用 type 分开,然后后台维护

谁说 transitions 停止维护了。。。六天前还有更新呢。。。 https://github.com/troessner/transitions

我在项目里管理订单的状态就是用的就是这个,简单易用,然后配合我写的 super_list https://github.com/jinzhu/super_list ,I18n 也有了。。。

#6 楼 @huacnlee 你这是不要 machine,只要 state ? 我用过 classy_enum 来生成个 enum 类,感觉还不错,不过 i18n 得自己弄。

16 楼 已删除
需要 登录 后方可回复, 如果你还没有账号请 注册新账号