問題タブ [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 - Controllerでのbefore_filtersのリファクタリング
Acts asStateMachineによって提供されるユーザーのステートフルロールを検索するusers_controllerにたくさんのbeforeフィルターがあるrailsアプリに取り組んでいます。彼らはこのように見えます:
UsersControllerによって制御される各アクションの状態のこのすべてのチェックにより、パフォーマンスが問題になりつつあり、ユーザー列へのSQLクエリは私のマシンで5ミリ秒以上かかります。
これらのフィルターのすべてがドラッグパフォーマンスに関与していると想定しているだけであり、データベースからの読み取りを改善するためにこれらをリファクタリングするのに最適な方法を考えています。
ruby-on-rails - AASM で移行を停止する最善の方法は何ですか?
状態遷移の成功フェーズまたは入力フェーズで呼び出されたメソッドがエラーをスローした場合、これをキャッチして状態が前の状態に確実に戻るようにする最善の方法は何ですか。
AASM gem を使用しています。
ruby-on-rails - rubyist-aasm を使用して遷移時に状態列を永続化する (状態マシンとして機能する)
aasm を使用して遷移時にオブジェクトの状態をデータベースに永続化する最良の方法は何ですか? これは自動的に起こると思っていましたが、そうではないようです。
(編集: オブジェクトを手動で保存すると、状態列は更新されます。ただし、トランジションでは保存されません。)
このプラグインに関する有用なドキュメントがあまり見つからないため、より適切なドキュメントを備えた代替の有限状態マシンの実装に関する提案があれば、それも役立つかもしれません。
ruby-on-rails - Rails での有限ステート マシンの検証 (AASM を使用)
Rubyist の AASMを使用して、AR オブジェクト用の 4 ステップのウィザードを作成しています。オブジェクトの状態に応じて、実行する必要があるさまざまな検証があります。特定の遷移の状態に従ってオブジェクトを検証する最もスマートな方法は何ですか?
ruby-on-rails - Rails 2.3.2によって壊れたAASMジェム?
Rails 2.3.2でAASMステートマシンGemを使用する際に問題が発生した人はいますか?それは私にとってはうまく機能していましたが、今は:を与えていNoMethodError
ます
AASMを使用する私のモデルの関連コードは次のとおりです。
テーブルにstate
列があることに注意してください。comments
- なぜそれが機能しなくなったのか、何か考えはありますか?
ruby-on-rails - Factory Girl ファクトリーでテストするときに、AASM から :set_initial_state をオーバーライドするにはどうすればよいですか?
アップデート
以下、回答。リンク先のサイトが消えてしまった場合、mochaを使って初期状態をスタブし、上書きを防ぐことができます...
元の質問
私は現在、Acts As State Machine Rails Plugin を実行しており (ちなみに、大幅に時間を節約できました)、Factory Girl でそれを使用する際にいくつかの課題があります (これも素晴らしいことです)。
Factory でオブジェクトを作成するときに、オブジェクトの状態を設定できるようにしたいと考えています。この質問の一般化された言い方は、「ファクトリでオブジェクトを作成するとき、どのようにクラス メソッドを呼び出しますか?」です。
いつでも t.activate! を呼び出すことができます。メソッドをすべてのテスト内で使用しますが、これによりテストが脆弱になります。このメソッドを Factory 作成レベルで実行するか、factory.rb 内で設定する方法を探しています。
ありがとう...
ruby-on-rails - aasmを使用した複数のカウンターキャッシュ列
各状態の数をキャッシュする方法を探しています。以前にカウンターキャッシュを実行しましたが、状態ごとに複数のcounter_cache列を作成して更新し続ける方法はありますか、またはこれらの値をキャッシュするために他の場所を探す必要があります。
データベース内の3列だけのようです。何か案は?
ruby-on-rails - 特定の Rails モデルの act_as_state_machine 状態のコレクションにアクセスするにはどうすればよいですか?
特定のモデルの状態のコレクションにアクセスすることは可能ですか:
クラス 会話含む AASM
終わり
次のような状態の配列を取得できるようにしたいと思います。
これは可能ですか?
ruby-on-rails - AASM のすべての遷移に対してコールバックを登録しますか?
状態遷移ごとに呼び出したいメソッドが 2 つあります。今、私はやっています:
明らかに、これは最善のアプローチではありません。私はコードを複製しています。より基本的には、コールバックがステート マシン全体に実際に適用されるときに、コールバックを特定の遷移に関連付けています。これを処理するより良い方法は何ですか?
ruby-on-rails - 誰がいつオブジェクトの状態を変更したかを表す最良の方法は? (AASM)
現在、state_last_updated_by_id
フィールドでモデルの状態を最後に更新したユーザーと、フィールドで状態が最後に更新された時刻を保存していstate_updated_at
ます。次に、次のようなメソッドを定義します。
これは明らかにスケーリングしません (そして、そもそも優れたアプローチではありません) - これを行う正しい方法は何ですか?