問題タブ [aasm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Ruby AASM (ステート マシンとして機能): 支払いの処理: コールバック前とガードの組み合わせ
Payment
次のような非常に単純なクラスを想定しましょう。
そのpayment.pay
ため、適切な API 呼び出しを行い、支払いをトリガーするために呼び出します。
支払いが実際に成功した場合にのみからcreated
への移行が行われることが非常に重要です。paid
1) API 呼び出しはイベントのbefore
コールバックに配置する必要があると想定します:pay
が、API 呼び出しが失敗した場合でも遷移は停止しません (API 呼び出しで例外が発生せず、ステータスが返されるだけであると仮定します)。
before
2) 次に、コールバックとガードを組み合わせる必要があると考えました。before
コールバックを使用して API を呼び出し、その結果をモデルに設定します (attr_accessor
たとえばインスタンスを使用)。created
次に、支払いが成功した場合にのみ、ガードはtopaid
状態からの遷移を許可します。
それは、aasm を使用してステート マシンでこのようなイベント遷移を処理する慣用的な方法ですか? タグ付けされたすべてのスタック オーバーフローの質問aasm
と gem のドキュメントを読みましたが、これらの安全な移行を行うための最善の方法についてまだ質問があります。