我正在通过Apartment gem处理多租户应用程序。一切工作正常,但我对某些事情感到好奇。如何在Rails控制台中更新给定租户的记录?
例如,如果我执行以下操作,它将按您的预期运行(当然不带公寓:
@alerts = Alert.create(name "blah", date_triggered: "blah", etc..)
您将如何与租户一起这样做?下面的代码不起作用,这不足为奇。我只是不确定您如何在控制台中轻松完成此任务。
@alerts = tenant01.Alert.create()
警报在租户的范围内,因此每个租户都有自己的警报。如果我使用浏览器来添加/修改记录,那么这100%可以正常工作,我只是不完全确定如何将sql转换回rails命令并通过控制台进行测试。
任何想法或想法都将不胜感激。
据我所知,有两种方法可以完成此操作。
例如
Apartment::Tenant.switch('tenant_name') do
@alerts = Alert.create(name "blah", date_triggered: "blah", etc..)
end
默认情况下,rails控制台将从public模式进行查询。选中Apartment::Tenant.current
以获取Rails用于查询数据的租户。
执行代码块后,Rails控制台将切换回公共模式。
Apartment::Tenant.switch!('tenant_name')
然后,@alerts = Alert.create(name "blah", date_triggered: "blah", etc..)
或执行任何操作。
然后,Rails控制台将切换到特定的租户,我们必须根据需要手动切换租户。