問題タブ [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 - Rails で AASM Gem によって生成されたスコープの補数を取得する
この質問は、AASM gem 開発者によって回答されることを意図しています。
Rails アプリ モデル ( Mongoid ) でAASM gemを使用しています。定義されたすべての状態のスコープを自動的に生成することは知っています。たとえば、これを持って...
...できるようにします: Order.pendingとOrder.received。
私の質問は非常に単純です。指定された状態の補数を取得するためにスコープも生成しますか? 次のようなもの: Order.not_pendingは、ステータスが「保留中」とは異なる注文を取得しますか?.
このように、それを取得するために独自のスコープを構築するのは非常に簡単であることを私は知っています...
...しかし、あなたがそれを定義しないことを確認したいのですが、もしそうなら、私は自分のスコープよりもあなたのスコープを使用したいからです。
ruby-on-rails - AASM で任意の「イベント」に対して一般的なコールバックを作成する方法
Railsアプリ(ActiveRecordを使用)にAASMで定義されたステートマシンがあり、多くのコールバックがあります。これらのコールバックの一部には、繰り返しコードが含まれています。たとえば、状態が変化するたびに、レコードを作成して保存し、メールを送信する必要があります。
代わりに、汎用コールバックを 1 つ用意し、それが必要なイベント用に特定のコールバックを追加したいと考えています。
これはまったく可能ですか?そして、非常に重要なことですが、そのコードは、トリガーされたイベントの名前にどのようにアクセスするのでしょうか?
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 に既にあるスコープを再利用できるものを見つけたいと考えています。
ruby-on-rails - aasm gem と ActionMailer のコールバック
Ruby on Rails を学んでいて、aasm コールバックと actionmailer に問題があります。私はホテルのモデルを持っています。コードは次のとおりです。
ご覧のとおり、ユーザーは、追加したホテルの状態が変更されたときにメールを受け取る必要があります。これは私が書いたものですが、解決策ではありません。管理者がホテルを「保留」状態で更新するたびに、ユーザーがメールを受け取るからです。
コールバックを使用する必要があると思いますが、呼び出す方法がわかりません
モデルから。私は試した
しかし、それはうまくいきません。私は本当に選択肢がなく、助けを求めています。ありがとう!
更新 1: Amit Sharma に感謝します! 私はこれらの変更を行い、今取得しています
changed_state_email() メソッドに渡すユーザー オブジェクトのように見えますが、理由はわかりません。ここに私のメーラーファイルもあります:
puts "====#{self.inspect}" の結果は次のとおりです。
F.====# F.====#
更新 2: ユーザー オブジェクトを返します。コンソールからの出力:
ruby-on-rails - aasmコールバックでActionMailerメソッドを呼び出す方法は?
Ruby on Rails を学んでいて、aasm コールバックと actionmailer に問題があります。私はホテルのモデルを持っています。コードは次のとおりです。
ご覧のとおり、ユーザーは、追加したホテルの状態が変更されたときにメールを受け取る必要があります。これは私が書いたものですが、解決策ではありません。管理者がホテルを「保留」状態で更新するたびに、ユーザーがメールを受け取るからです。
コールバックを使用する必要があると思いますが、呼び出す方法がわかりません
モデルから。私は試した
しかし、それはうまくいきません。私は本当に選択肢がなく、助けを求めています。ありがとう!