問題タブ [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-on-rails - AASM で状態を自動的に変更する最良の方法は何ですか?
現在のプロジェクトでAASMを使用してステート マシンを作成していますが、イベントを自動的に呼び出して次のステートに進むにはどうすればよいでしょうか?
私はこれを行う2つの方法を検討しています:
特定の条件が満たされているかどうかを定期的に確認するバックグラウンド ジョブをセットアップします。そのため、イベントを呼び出して次の状態に進みます。
before_save
次のイベントを連続して試行するメソッドを呼び出します。ガードがあると、条件が満たされた場合は成功しません。それ以外の場合は状態が変化し、次にモデルが更新されたときに新しいイベントをチェックします。
イベントを移行するためだけに background_job キューを設定するのはやり過ぎのように思えるため、2 番目のオプションに傾いていました。これに関するベスト プラクティスが見つからなかったので、ベスト アプローチとその理由を教えてください。
例
たとえばstart_onboarding
、イベントがありcomplete_onboarding
ます。これらのイベントを手動で呼び出したくはありませんが、保留中 -> in_progress -> 完了イベントの間で自動的に移行したいと考えています。
ruby-on-rails - レール AASM; 特定の遷移が発生した場合に何らかのアクションを実行する方法
レール上でAASMと呼ばれるステート マシンの gem を使用します。
2 種類のトランジションを持つイベントがあります。
三三種類の状態
pending
に変更できます に変更paid
past_due
できますpaid
past_due
したがって、ここでは、 go の場合にのみ何らかのアクションを実行したいと思いますpaid
。
何か案が?
ruby-on-rails - NameError: uninitialized constant Order::AASM
I am implement a order system with AASM, but when I use rails c
to check the function, but something wrong happen. NameError: uninitialized constant Order::AASM
There is gem 'aasm'
in the Gemfile.
I have searched Google and StackOverflow with NameError: uninitialized constant Order::AASM
, but got nothing that did work.
I have reload bundle install
and rails s
, even reboot
the computer.
This is my code.
How to fix this? And if I can't find the right question, or you need more information, could you point it?
ruby-on-rails - レールで実際にイベントを発生させずにイベントが発生した場合、次の状態を取得する AASM メソッドはありますか
のフロー図を作成しようとしていAASM
ます。多くの状態と各状態の多くのイベントを持つステート マシンがあります。AASM
ステート マシンの定義からマシンを視覚化するのは困難です。これを行うには、次の3つの方法が必要です。
1) すべての状態を返すメソッド。これは によってすでに提供されていますAASM
。aasm.states.map(&:name)
2) 特定の状態のすべてのイベントを返すメソッド。AASM
現在の状態からすべてのイベントを返すメソッド、つまりaasm.events.map(&:name)
. これはほとんど私が望むものですが、状態をメソッドに渡したいです。現在の状態を使用するのではなく、渡された状態を使用したい。
3) ステートとイベントを除外するメソッド。メソッドは、ステート マシンで実際に何も変更せずに、呼び出されたときに次のステートを返す必要があります。このようなもの、
このようなものはありますか?私が望むものを実装する別の方法はありますか?
アップデート
@ puneet18の回答に基づいて、私の状態図は次のようになります
どんなに複雑なステート マシンでも機能するコード ブロックを使用して、このようなテーブルを生成するにはどうすればよいでしょうか。
ruby-on-rails - AASM ステート マシンの例外処理の例は?
私は現在、基本的に次のことを行っているクラスに取り組んでいます。
- モデルが作成される
- データをフェッチします (イベント「get_things!」)
- 例外が発生した場合、状態は「失敗」になるはずです
- 成功した場合、状態は「終了」する必要があります
私は次のように実装しようとします:
それは機能しますが、どういうわけか本当にうまくいかないようです...
readmeに記載されているエラー処理のようなものを好むでしょう
しかし、これが本当にベストプラクティスであるかどうかはわかりませんか?
また、多くのイベントがあり、上記のエラー処理が上記のように動作する必要があり、error_on_all_events を使用できることがわかりましたが、それに関するドキュメントは見つかりませんでしたか?
何かご意見は?ありがとう!
編集:混乱を避けるためにいくつかの小さな部分を変更しました。