Byron Bowerman のstrip-exampleに少し似た Stripe SaaS アプリを作成しました。
Stripe からの通知は「webhook」と呼ばれ、支払いが成功したか失敗したかなどの情報が含まれています。私のアプリでは、stripe-event gemがそれらを受け取り、情報を Webhook モデルに渡してデータベースに保存します。
これらのイベントを使用してアクションをトリガーしたい:
- ユーザーへのメール
- ユーザーモデルの更新
- 等
問題は、どのクラスがこれらのアクションを実行する必要があり、どのように通知する必要があるかです。
いくつかのオプションがあります:
1) Webhook モデル内
簡単ですが、このクラスの責任がどうあるべきかを理解していません。
2) Webhook オブザーバー
1 つのオブザーバーか、それともアクションごとに別々のオブザーバーか?
3) Rails通知
Webhook モデルActiveSupport::Notification
は、Webhook を受信するたびに を送信できます。これは、アプリケーション内の任意の場所にあるクラスによってサブスクライブできます。もし私がこのルートに行った場合、User モデル、UsersController、または他の場所でこれを行うのが適切でしょうか?
このアプローチに関して私が心配しているのは、 Ryan Batesが通知に関する彼の railscast で、「通知は、ログ記録と、アプリケーションのコア動作を変更しないコードに使用するのが最適である」と推奨していることです。
4) ...?
何をアドバイスしますか?