我有一个用于将其与公司联系起来的 railsThing
模型acts_as_tenant
。这很好用,现在属于公司的用户只能访问与他们公司相关的事物。
class Thing < ApplicationRecord
acts_as_tenant(:company)
belongs_to :company
end
现在我在is_global
我的东西中添加了一个布尔字段。现在我希望 Thing(通过acts_as_tenant)被限定为范围,以便用户可以访问他们公司的事物和任何全局事物。有没有办法配置acts_as_tenant
启用这种行为?
我目前的解决方法是放弃acts_as_tenant(:company)
此模型中的调用,而是创建一个新的默认范围:
default_scope { where('company_id = ? or is_global = true', ActsAsTenant.current_tenant.id) }
这似乎可以完成这项工作,尽管我担心我可能会在不知不觉中绕过acts_as_tenant 的一些好的特性。