0

acts_as_tenantテナント ID 列に名前が付けられていないマルチテナンシーにRails gem をうまく使用した人はいxxx_idますか?

私のモデルは次のようなものです

has_one :tenant, :foreign_key => "tenant_code" 
acts_as_tenant :tenant

select * from [table] where tenant_id = xxx次に、オーバーライドされたforeign_key仕様を無視してクエリを取得します。

これを修正する方法はありますか?それとも明らかに間違ったことをしていますか?

ありがとう!!

4

2 に答える 2

2

今後の参考のために、この問題の更新として:

gem バージョン 0.3.3 以降では、外部キーを明示的に設定できるようになりました。

acts_as_tenant(:account, :foreign_key => 'accountID')

おそらく、これはこの質問を見つけた人の助けになるでしょう。

于 2014-01-05T07:13:00.343 に答える
0

ActsAsTenant は、自身の外部キーを gem 自体に (疑似コード) #{tenant_klass}_id として設定します。

def self.fkey
  "#{@@tenant_klass.to_s}_id"
end

https://github.com/ErwinM/acts_as_tenant/blob/master/lib/acts_as_tenant/model_extensions.rb#L12-L14

残念ながら、activerecord モデルの関係以外に独自の外部キーを設定できるとは思えません (コードでは、理論的には model.tenant を呼び出すこともできますが、それは役に立ちません)。

于 2013-09-18T18:32:08.133 に答える