それぞれのオンライン VPS サーバーに複数のクライアント用に展開された中規模のアプリケーションがあります。コードはすべてのクライアントで同じです。メンテナンスは大きな負担になりつつあります。同じ変更でも、非常に多くのサーバーに展開しています。そのため、アプリケーションにマルチテナンシー機能を実装することを計画しています。
いくつかの宝石に出くわしましたが、それは目的を達成していないため、実装する予定です。
新しいモデルClient
を作成し、abstract superclass
継承するクラスを作成しActiveRecord::Base
、すべての依存クラスがこのクラスを継承します。スーパークラスから追加default_scope
したいときに問題が発生します。
class SuperClass < ActiveRecord::Base
self.abstract_class = true
default_scope where(:client_id => ???)
end
??? ユーザーごとに変わります。したがって、静的な値を与えることはできません。しかし、このスコープを動的に設定する方法がわかりません。では、何ができるでしょうか?