メインの管理インターフェイスとして ActiveAdmin を使用してマルチテナント アプリを構築しています。私はacts_as_tenant gemを使ってデータをうまく分離しました。
すべてのユーザーのユーザー モデル オブジェクトとして AdminUser モデルを使用しました。
他のユーザーを追加するために、AdminUser のスコープもテナントに限定されます。
ActiveAdmin/Devise が認証を試みると、以下に示すように最初に find_tenant フィルターにヒットしていると想定されるため、これはログインを無効にします。
class ApplicationController
  set_current_tenant_through_filter
  before_filter :find_tenant
  def find_tenant
     if admin_user_signed_in?
      set_current_tenant(Company.find(current_admin_user.company_id))
     end
  end
これを回避する方法がわからない... ユーザーにログインしてもらい、アプリケーションがログインしたユーザーから company_id を取得してテナントを設定し、ActiveAdmin に表示されるすべてのデータがそのテナントを介してスコープされます (この部分は、 act_as_tenant gem (ログインを通過できる場合)。
ありがとう