我是 Active Admin 的新手,但从我目前看到的情况来看,我认为这很容易实现。
我有一个带有公寓 gem 的应用程序来添加多租户。
我正在向我的应用程序添加活动管理员。Apartment 使用 PostgreSQL 模式来隔离数据。因此,例如,默认情况下,您在 Apartment 中的模型有一个“公共”租户,除非您调用类似Apartment::Tenant.switch!('abc')
.
在我的应用程序中,我User
和Company
模型在公共租户中,其他一切都在租户中。所以开箱即用的 Active Admin 工作正常,除了租户模型不显示任何记录 - 正如他们应该的那样。
我做了一些修改并手动添加了Apartment::Tenant.switch!('abc')
一个 AA 模型文件,效果很好。这是一个理想的解决方案:
- 当
AdminUser
租户中的日志设置为默认值时(比如第一个租户) - 在每个租户模型上,可能有一个选择菜单提交参数 (?tenant=abc),然后租户被更改
- 活动租户可能保存在
AdminUser
会话存储中,因此您可以在相同的租户数据中工作,直到您需要切换。
我想我自己可以很容易地做到这一点,但我想看看是否有任何我需要解决的 Active Admin 特定问题,例如:
- AA 是否具有等效的应用程序控制器?将租户切换逻辑与主要逻辑保持在其中会很好。
- 备用 AA 设计
AdminUser
有一个单独的会话变量存储可用,对吗?
任何建议将不胜感激 - 一旦我整理出来,我会将我的最终解决方案/代码发布回这篇文章。