0

有没有人成功地将 Rails acts_as_tenantgem 用于多租户,其中未命名租户 ID 列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 回答