1

レール上でAASMと呼ばれるステート マシンの gem を使用します。

2 種類のトランジションを持つイベントがあります。

三三種類の状態

state pending
state past_due
state paid

pendingに変更できます に変更paid past_dueできますpaid

  event :pay do
      transitions from: [:pending, :past_due], to: :paid
  end

past_dueしたがって、ここでは、 go の場合にのみ何らかのアクションを実行したいと思いますpaid

何か案が?

4

3 に答える 3

0

afterトランジションとイベントの両方にコールバックをアタッチできます。

past_dueイベントは両方の遷移で同じであるため、コールバックを from からへの特定の遷移にアタッチする必要がありますpaid

両方のフローを 1 つのトランジションでカバーしているため、最初のステップは、このフローに対して個別のトランジションを作成し、それにコールバックをアタッチすることです。として、

transitions :from => :past_due, :to => :paid, :after => your_required_action
于 2017-02-22T12:03:17.017 に答える