使用Apartment gem时通过rails控制台更新记录

问题描述 投票:0回答:1

我正在通过Apartment gem处理多租户应用程序。一切工作正常,但我对某些事情感到好奇。如何在Rails控制台中更新给定租户的记录?

例如,如果我执行以下操作,它将按您的预期运行(当然不带公寓:

@alerts =  Alert.create(name "blah", date_triggered: "blah", etc..) 

您将如何与租户一起这样做?下面的代码不起作用,这不足为奇。我只是不确定您如何在控制台中轻松完成此任务。

 @alerts = tenant01.Alert.create()

警报在租户的范围内,因此每个租户都有自己的警报。如果我使用浏览器来添加/修改记录,那么这100%可以正常工作,我只是不完全确定如何将sql转换回rails命令并通过控制台进行测试。

任何想法或想法都将不胜感激。

ruby-on-rails ruby rails-console apartment-gem
1个回答
0
投票

据我所知,有两种方法可以完成此操作。

  1. 在特定租户reference内添加逻辑

例如

Apartment::Tenant.switch('tenant_name') do
  @alerts =  Alert.create(name "blah", date_triggered: "blah", etc..)
end

默认情况下,rails控制台将从public模式进行查询。选中Apartment::Tenant.current以获取Rails用于查询数据的租户。

执行代码块后,Rails控制台将切换回公共模式。

  1. 您也可以永久切换到特定租户,

Apartment::Tenant.switch!('tenant_name')

然后,@alerts = Alert.create(name "blah", date_triggered: "blah", etc..)或执行任何操作。

然后,Rails控制台将切换到特定的租户,我们必须根据需要手动切换租户。

© www.soinside.com 2019 - 2024. All rights reserved.