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、保留中、検証中などの状態があります。ステート マシンを 1 つだけ使用してこれを実装することもできますが、ネストされたステート マシンを使用することをお勧めします。ウェブ上でサンプルを見つけることができません。state_machine はこの使用例をサポートしていますか? または、他の宝石がある場合は、それを教えてもらえますか? ありがとう

4

1 に答える 1

0

ワークフローの宝石https://github.com/geekq/workflowでこれを達成できると思います

于 2015-05-10T18:56:04.670 に答える