如何使用Ruby`state_machine` gem获取在给定状态之前的状态列表?

时间:2016-08-19 23:28:55

标签: ruby ruby-on-rails-4 rubygems state-machine

考虑state_machine gem,如何选择在给定状态之前出现的一组状态名称/符号?

假设我有四种状态::pending:signature_needed:ordered:finalized。假设从初始(:pending)到最终(:finalized)状态的线性进展。

如何获得:ordered之前的所有州?我期待像[:pending, :signature_needed]这样的结果。

注意:我刚刚意识到,在尝试找出未提供此功能的原因后,state_machinenot currently supported(因为我要制作一个添加此功能的PR)。

1 个答案:

答案 0 :(得分:0)

(目前未维护的)state_machine gem中没有内置此类功能。由于它完全可能用于非线性状态转换,因此准确描述哪个状态出现在另一个状态之前可能非常复杂且非常不可预测。"因此,每个使用state_machine gem的应用程序都需要创建自己的mixin来动态地确定循环中的哪些状态在彼此之前和之后。

答案归功于OP下方的评论。