認証には Devise を使用し、SAAS アプリでのマルチテナンシー サポートには Apartment を使用します。
ログインに失敗すると、devise はログイン ページ (Users::SessionsController#new) に「リダイレクト」し、Apartment::Tenant.current
以前にミドルウェアで設定されたTenantElevator
値はデフォルト値の「public」に戻ります。
これは、Devise が実際にログイン ページにリダイレクトするのではなく、新しいラック環境で FailureApp (ログイン ページをレンダリングする) を呼び出し、その応答を返すために発生しています。新しいラック アプリにはTenantElevator
ミドルウェアがないため、テナントはラック アプリ内に設定されません。
誰でもこれを修正する方法を知っていますか? TenantElevator ミドルウェアを Failure アプリに追加する方法はありますか?