最初にユーザーをリダイレクトしてから、ユーザーをプログラムでサインインしたいと考えています。
マルチタンシー アプリがあり、ユーザーがルート ドメインにサインインしようとすると、アプリはユーザーをサブドメインにリダイレクトするだけでなく、ユーザーをサインインさせる必要があります。
これまでのところ、次のコードでこれを達成しようとしています:
# In sessions#create ( Root )
redirect_to "http://#{account.subdomain}.localhost.com:3000/users/sign_in"
Apartment::Tenant.switch(account.subdomain)
sign_in(:user, account.owner) # Basically, owner is the user here.
コードを実行すると、サブドメインに正常にリダイレクトされますが、ユーザーはサインインしません。
次のエラーが表示されます。
Completed 302 Found in 93ms (ActiveRecord: 39.7ms)
また、 when I run を実行した後、ログに表示されるクエリは次のようになるため、 schema
when I doは切り替わりません。Apartment::Tenant.switch(account.subdomain)
Apartment::Tenant.switch(account.subdomain)
user = User.first
User Load (0.9ms) SELECT "public"."users".* FROM "public"."users" ORDER BY "public"."users"."id" ASC LIMIT 1
ここでは、サブ ドメインではなく、ルートドメインにpublic
対応します。schema
schema