4

我正在尝试在 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 是否支持此用例?或者,如果有其他宝石,你能指点我吗?谢谢

4

1 回答 1

0

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

于 2015-05-10T18:56:04.670 回答