我已将gem'metants_as_tenant'添加到我的Rails应用程序中。
我在应用程序控制器中设置了以下内容:
set_current_tenant_by_subdomain(:tenant, :subdomain)
我还在Tenants表中添加了信息列。例如,statuscode_id为“已关闭”状态。在Request模型中,我想使用该列进行范围调整。
这样的事情:
scope :closed, where(:statuscode_id => Tenant.find(current_tenant.id).request_closed)
但是,current_tenant
无效。
我可以使用什么来获取当前租户的ID?
谢谢!
答案 0 :(得分:1)
到目前为止,您所做的就是说子域名将用于定义租户。为了限制租户只能看到他们的数据,您需要在模型中定义它。
您需要将acts_as_tenant(:tenant)
添加到Request
模型中。此表的数据库中还需要一个tenant_id
列。
完成此操作后,gem将负责其余部分,所有数据库访问权限将自动处理限制租户访问的权限。例如Request.all
将在幕后使用默认范围,仅限制该租户拥有的请求。
有关详细信息,请参阅ErwinM/acts_as_tenant。