ruby-on-rails - 带有子记录的 act_as_tenant
问题描述
我正在使用act_as_tenant
. 目前,我有一个看起来像这样的模型:
class Portfolio < ApplicationRecord
acts_as_tenant :organization
has_many :holdings
end
另外,我有这个控股模型:
class Holding < ApplicationRecord
belongs_to :portfolio
end
act_as_tenant
为投资组合模型正常工作。也就是说,如果我以与 Portfolio 的组织不匹配的组织身份登录,则该 Portfolio 将不会存在于数据库中。
但是,由于我以不同组织的身份登录,我仍然可以访问控股公司。但是当我尝试去做时holding.portfolio
,我得到了nil
。
有没有办法扩展这种act_as_tenant
逻辑,以便父模型的所有子模型也将自动由租户限定范围?
解决方案
阅读以下文档acts_as_tenant
:
Row-level multitenancy each model must have a tenant ID column on it. This makes it easy to filter records for each tenant using your standard database columns and indexes. ActsAsTenant uses row-level multitenancy.
这意味着控股模型也应该具有acts_as_tenant :organization
并且具有组织的外键。这也应该适用于您计划添加的其他记录,这些记录依赖于acts_as_tenant
推荐阅读
- amazon-web-services - 如何使用 amazon lex 保持转换的上下文?
- debugging - F# FSI 在内联函数内没有中断
- git - 具有 rebase 的 SourceTree 完成功能 - CLI 等效
- java - 调用具有大数据大小的 post rest api 时引发错误
- java - 读取 Iris 数据集并存储在二维数组中
- tensorflow - 张量流中的训练和测试
- php - Mysqli 建议,可能使用 concat() 进行 1 或 2 个查询
- java - 来自 YearMonth 和第 n 天 DayOfWeek 的 LocalDate
- python - 用泊松函数拟合直方图
- wordpress - Wordpress Divi 主题标题自定义