の動的スキーマは、私たちが行うことができます知っています:RailsのモデルのRails 4.2では
self.table_name = 'users'
しかし、私はクライアントのためのスキーマに一部のモデルを持っているアプリを持っています。 ではありません。モデルはスキーマにあります。いくつかは共有されています。たとえば、ユーザーの個人情報は各スキーマにのみ存在します。
は、私たちが行うことができます知っている:
self.table_name = 'schema_name.users'
しかし、どのような各schema_name
が異なる場合 - クライアントあたり?私は正常に1つのスキーマのユーザーテーブルにデータを挿入できますが、同じセッションで、別のスキーマのユーザーテーブルに挿入しようとすると、そこに保存されません。私はtable_nameがキャッシュされていると思いますので、設定したままにしておいてください...
何か提案がありますか?これがRailsでも可能であると確信しています。
は、あなたが行くことができ
ありがとうございます。しかし、これがモデルを通じた創造のためのものだったらどうでしょうか?私はアパートをチェックアウトします... –
私がUserモデルを持っている場合、作成する前にこの 'User.table_name = 'schema_name.users''を実行します – neydroid
すごい!だから私は、組織のクッキーから読み込む 'set_runtime_organization'を呼び出す' ApplicationController'に 'before_action'を持っていました。そこから、私は 'ModelName.table_name ="#{schema_name} .model_name'を例として行うことができます。これはうまくいくはずです... –