Ruby 类,具有使用 state_machine gem 的嵌套状态机



all我正在尝试在 ActiveRecord 对象 https://github.com/pluginaweek/state_machine gem 上实现状态机。但我想嵌套state_machines。到目前为止,我有这个简单的状态机:

class Document < ActiveRecord::Base
  state_machine :initial => :new do
    before_transition :new => :processing, :do => :start_processing
    event :start_processing do
      transition :new => :upload_to
    end
    event :finish_processing do
      transition :processing => :ok
    end
    event :error_in_processing do
      transition :processing => :error
    end
    event :to_trash do
      transition :processing => :trash
    end
  end

但我想做的是拥有嵌套状态机,它将在过渡到处理状态后启动。此嵌套状态机将具有诸如uploading_to_xxx、extracting_from_yyy、挂起、正在验证等状态。我可能只使用一个状态机来实现这一点,但我更喜欢使用嵌套状态机。我在网上找不到任何样本。state_machine是否支持此用例?或者,如果还有其他宝石,你能指出我吗?谢谢

我认为

您可以使用工作流 gem https://github.com/geekq/workflow 来完成此操作

最新更新