私はデータベースとしてPostgreSQLを使用しており、マルチテナントアプリケーションのための私のミドルウェアとして3を使用しています。Intercept ActiveRecord establish_connection初期化プロセス
establish_connectionメソッドで作成されたすべての接続に対して、現在ログインしているクライアントIDを含む環境変数を設定したいと考えています。
私はこの環境変数を設定するためにestablish_connectionのコールバックを介して初期化プロセスを傍受することができますか?
本当に達成したいことを記述できますか? 1つのアプリケーションが多くの異なるデータベースに接続する場合、env変数には何を設定しますか?あなたはなぜenv変数を設定したいですか? –
申し訳ありませんが、何とか私のメールボックスにあなたのコメントを受け取りませんでした。うん、私は環境変数を設定することは悪い習慣だと考えました。基本的に私はすべてのクライアントアカウントのpostgresスキーマを構築して、データのプライバシーを確保しています。しかし、これは、現在のユーザーのclient_idに基づいて、ActiveRecord接続ごとにschema_search_pathを変更する必要があることを意味します。通常、私はモデルでセッション情報を使用するのが好きではありませんが、この場合、接続が確立されるたびにこの情報を使用する必要があります。これを行うためのきれいな方法がありますか? –