2016-08-22 16 views
0

レールワークフローの宝石ですでに受け入れられているオブジェクトを再受け入れできましたか?ワークフロー宝石を使用してレールを再受入

私のビジネスケース:

  1. ユーザーは、パブリックプロファイルデータを更新したいと考えています。公共
  2. ユーザーがデータをもう一度時間(更新操作)と、新しい変更を変更し、すべての更新の管理者に
  3. は、データが表示されていることを
  4. 管理者が変更を受け付けたデータにし、後に加えられた変更を確認する必要があります再び見直さなければならない。
  5. 管理者のレビューがもう一度受け入れられます。

だから私のworkflowになるはずですか?今のところ、次のようになります

include Workflow 
    workflow do 
    state :new do 
     event :submit, :transitions_to => :awaiting_review 
    end 
    state :update do 
     event :submit, :transitions_to => :awaiting_review 
    end 
    state :awaiting_review do 
     event :review, :transitions_to => :being_reviewed 
    end 
    state :being_reviewed do 
     event :accept, :transitions_to => :accepted 
     event :reject, :transitions_to => :rejected 
    end 
    state :accepted 
    state :rejected 
    end 

私の問題は私が受け入れに私のオブジェクトの状態を変更すると、私は2つ目の更新に戻っawaiting_reviewに行くことができないだということです。 何か助けていただければ幸いです。ありがとう!

答えて

1

私はワークフローの宝石を使用する場合、私はちょうど逆方向に移行するための別のイベントを作成します。

state :accepted do 
    event :submit, :transitions_to => :awaiting_review 
end 

プロファイルは、新規、更新または受け入れられた状態であるとき、それが呼び出すことができるので、私はsubmitイベント名を続けるだろう。

+0

私はこれをしようとしたとき、それは仕事をdoesntのことを意味し、「何のイベントが受け入れられた状態のために定義されていない受け入れるがあり、」受け取ります。あなたには例がありますか?あなたはpastebin tnxに投稿できますか? – user2670818

+0

私はあなたのアップデートの処置を見て、さらに助けてください。あなたのコードは受け入れを呼びます!すでに受け入れられているとき。待っているレビュー状態をバイパスしましたか? – codyeatworld

+0

私のテストはhttp://pastebin.com/YE4bfrdtで見ることができます。それはうまくいっていますが、私が直面している問題は、受け入れられる前に、新しい変更が一般に公開されていることです。間違っています。最後に受け入れたデータで状態を表示する必要があります。 – user2670818

関連する問題