我在我的多租户应用上安装了ActiveAdmin(使用带有Apartment gem的模式)。 帐户位于默认的“公共”架构中,附加用户位于子域模式中。
登录ActiveAdmin时,我使用'public'模式,因此我可以访问Account表,但User表为空,因为'public'模式中没有用户。
有没有办法一次列出所有架构中的所有用户?或者作为替代方案,在ActiveAdmin中使用下拉菜单过滤器来选择一个特定的架构/子域,然后列出该架构/子域的所有用户?
这是我的ApplicationController,可以让我们了解应用程序如何处理多模式表。
感谢您的任何想法:)
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_filter :load_schema, :authenticate_user!
private
def load_schema
Apartment::Database.switch('public')
return unless request.subdomain.present?
if current_account
Apartment::Database.switch(current_account.subdomain)
else
redirect_to root_url(subdomain: false)
end
end
def current_account
@current_account ||= Account.find_by(subdomain: request.subdomain)
end
helper_method :current_account