2016-04-12 6 views
2

マルチテナント用のアパートメントを使用します。現在のテナントではなく、すべてのテナントでクエリを実行できる方法はありますか?それを行うには迷惑な方法のテナント間のアパートメントアクティブレコードクエリ

一種類は、私がテナントを切り替えるの副作用ががあり、および設定するためのいくつかの方法があった場合、それはいいだろうかわからないんだけど

tenants.map do | tenant | 
    Apartment::Tenant.switch! tenant 
    User.all 
end 

ようなものになるだろうクエリレベルでのテナント。物事の

+1

を変更していないこの方法であなたは常にテナントベースであることから、特定のモデルを除外することができます - しかし、あなたが話している場合複数のテナントを報告する場合は、それを行う方法です。それについて考えると、アプリケーションがユーザーが接続するたびにアプリケーションが行うことと変わりありません。データベースをテナントに切り替えてアクションを実行しますが、それは簡単すぎる可能性があります。あなたが達成しようとしているものに依存します。 – trh

+0

@trhそれは良い答えになるでしょう... –

+0

@trh:うん、私はそれをテナントベースから除外することができますが、これは通常、特定の管理シナリオを除いて私がテナントベースにしたいものです。 – Xodarap

答えて

2

一つのわずかに良い方法は

tenants.map do | tenant | 
    Apartment::Tenant.switch(tenant) do 
    User.all 
    end 
end 

であることは、現在のテナント

関連する問題