問題タブ [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.

0 投票する
1 に答える
486 参照

ruby-on-rails - Rails で AASM Gem によって生成されたスコープの補数を取得する

この質問は、AASM gem 開発者によって回答されることを意図しています。

Rails アプリ モデル ( Mongoid ) でAASM gemを使用しています。定義されたすべての状態のスコープを自動的に生成することは知っています。たとえば、これを持って...

...できるようにします: Order.pendingOrder.received

私の質問は非常に単純です。指定された状態の補数を取得するためにスコープも生成しますか? 次のようなもの: Order.not_pendingは、ステータスが「保留中」とは異なる注文を取得しますか?.

このように、それを取得するために独自のスコープを構築するのは非常に簡単であることを私は知っています...

...しかし、あなたがそれを定義しないことを確認したいのですが、もしそうなら、私は自分のスコープよりもあなたのスコープを使用したいからです。

0 投票する
2 に答える
2938 参照

ruby-on-rails - Rails aasm 状態への検証の追加

私がやっていたstate_machineで

ユーザーが存在しない場合、移行は自動的にキャンセルされます。

aasmの特定の状態に同様の検証を追加するにはどうすればよいですか?

0 投票する
2 に答える
1024 参照

ruby-on-rails - AASM で任意の「イベント」に対して一般的なコールバックを作成する方法

Railsアプリ(ActiveRecordを使用)にAASMで定義されたステートマシンがあり、多くのコールバックがあります。これらのコールバックの一部には、繰り返しコードが含まれています。たとえば、状態が変化するたびに、レコードを作成して保存し、メールを送信する必要があります。

代わりに、汎用コールバックを 1 つ用意し、それが必要なイベント用に特定のコールバックを追加したいと考えています。

これはまったく可能ですか?そして、非常に重要なことですが、そのコードは、トリガーされたイベントの名前にどのようにアクセスするのでしょうか?

0 投票する
1 に答える
486 参照

ruby-on-rails - 同じ STI テーブルへの has_many 関係を持つクエリでスコープを再利用する

Child1 と Child2 には Entity との STI 関係があり、Child2 には Child1 が _many 含まれています。Child1 には、AASM によって管理されるステータス列があります。

Child1 の各状態の Child2 にスコープを作成したいと思います。その状態にある 1 つ以上の Child1 レコードを持つすべての Child2 レコードを返す必要があります。理想的には、AASM が自動的に作成するスコープを再利用します。

...これは素晴らしく、きれいで、DRYです。残念ながら、これが生成する SQL は、同じテーブルの結合によって混乱します。

where 句の最後の部分はchild1_entities.status = 'owned'.

クエリ全体を SQL または Arel で記述できますが、child1 結合のエイリアスを指定するためにそこに移動する必要がある場合でも、Child1 に既にあるスコープを再利用できるものを見つけたいと考えています。

0 投票する
1 に答える
543 参照

ruby-on-rails - aasm gem と ActionMailer のコールバック

Ruby on Rails を学んでいて、aasm コールバックと actionmailer に問題があります。私はホテルのモデルを持っています。コードは次のとおりです。

ご覧のとおり、ユーザーは、追加したホテルの状態が変更されたときにメールを受け取る必要があります。これは私が書いたものですが、解決策ではありません。管理者がホテルを「保留」状態で更新するたびに、ユーザーがメールを受け取るからです。

コールバックを使用する必要があると思いますが、呼び出す方法がわかりません

モデルから。私は試した

しかし、それはうまくいきません。私は本当に選択肢がなく、助けを求めています。ありがとう!

更新 1: Amit Sharma に感謝します! 私はこれらの変更を行い、今取得しています

changed_state_email() メソッドに渡すユーザー オブジェクトのように見えますが、理由はわかりません。ここに私のメーラーファイルもあります:

puts "====#{self.inspect}" の結果は次のとおりです。

F.====# F.====#

更新 2: ユーザー オブジェクトを返します。コンソールからの出力:

0 投票する
1 に答える
329 参照

ruby-on-rails - aasmコールバックでActionMailerメソッドを呼び出す方法は?

Ruby on Rails を学んでいて、aasm コールバックと actionmailer に問題があります。私はホテルのモデルを持っています。コードは次のとおりです。

ご覧のとおり、ユーザーは、追加したホテルの状態が変更されたときにメールを受け取る必要があります。これは私が書いたものですが、解決策ではありません。管理者がホテルを「保留」状態で更新するたびに、ユーザーがメールを受け取るからです。

コールバックを使用する必要があると思いますが、呼び出す方法がわかりません

モデルから。私は試した

しかし、それはうまくいきません。私は本当に選択肢がなく、助けを求めています。ありがとう!