【发布时间】:2016-01-07 21:11:09
【问题描述】:
我是 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有一个单独的会话变量存储可用,对吗?
任何建议都将不胜感激 - 一旦我整理好我的最终解决方案/代码,我会将其发布回这篇文章。
【问题讨论】:
标签: ruby-on-rails activeadmin apartment-gem