【发布时间】:2017-04-08 04:54:11
【问题描述】:
我有一个客户端应用程序 - Angular JS 前端和带有 MySQL 数据库的 Rails API 后端。我正在尝试将应用程序转换为单一模式多租户应用程序。我做了很多阅读并且:
- 如果可能,我不想使用 gem - Apartment,它是多个模式并使用 Postgres 不符合要求,并且 act_as_tenant 似乎使用 Thread.current 来识别我不想做的租户。
- 我已经读过 default_scope 也不应该被使用,原因有很多我不会在这里讨论。
我将请求标头中的租户令牌从前端传递到 Rails 后端,并使用租户令牌在我的 ApplicationController 中识别租户。我现在正在寻找读取和写入数据的最佳方式,以便与发出请求的租户相关联。
排除了上述选项后,我能看到的唯一选择是进入我的所有控制器方法,并在写入和读取数据的任何地方更新它们。我更愿意对我的每个模型应用某种回调,以便在写入数据时始终写入租户 ID,并且在读取数据时始终将租户 ID 用作过滤器。
鉴于我无法访问模型中的租户令牌,除了更新我的所有控制器方法之外,我不确定如何继续此操作,这将是一个艰巨且容易出错的过程。
提前致谢!
【问题讨论】:
标签: mysql ruby-on-rails ruby schema multi-tenant