Обновление записи через консоль rails при использовании жемчуга Apartment - PullRequest
0 голосов
/ 12 февраля 2020

Я работаю над мультитенантным приложением через жемчужину квартиры. Все работает отлично, но мне что-то интересно. Как можно go обновить запись для данного арендатора в консоли rails?

Например, если я сделаю следующее, это сработает так, как вы ожидаете (без квартиры, конечно):

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

Как бы вы поступили с арендаторами? Код ниже не работает, что не удивительно. Я просто не уверен, как вы могли бы легко выполнить это в консоли.

 @alerts = tenant01.Alert.create()

Уведомления входят в сферу действия арендатора, поэтому каждый арендатор будет иметь свои собственные предупреждения. Это на 100% работает, если я использую браузер для добавления / изменения записей, я просто не совсем уверен, как перевести sql обратно в команду rails и протестировать через консоль.

Любые идеи или мысли будут с благодарностью.

1 Ответ

0 голосов
/ 12 февраля 2020

Насколько я знаю, есть два способа сделать это sh.

  1. Добавление логи c внутри спецификаций c арендатор ссылка

Например,

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

By по умолчанию консоль rails запрашивает схему publi c. Отметьте Apartment::Tenant.current, чтобы получить арендатора, с которого rails запрашивает данные.

После выполнения блока кода консоль rails переключится обратно на схему publi c.

Вы также можете навсегда переключиться на специфицированного c арендатора,

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

Затем @alerts = Alert.create(name "blah", date_triggered: "blah", etc..) Или сделать что угодно.

Затем консоль rails будет переключена на специфицированного c арендатора, мы должны вручную переключить арендатора в зависимости от потребностей.

...