我正在使用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上显示的数据都是通过该租户进行范围限制的(如果我能通过登录)。使用acts_as_tenant gem可以很好地实现这一部分功能。
谢谢