是否有人成功使用Rails acts_as_tenant
gem进行多租户,其中租户ID列未命名为xxx_id
?
我的模型类似于
has_one :tenant, :foreign_key => "tenant_code"
acts_as_tenant :tenant
然后我的查询select * from [table] where tenant_id = xxx
忽略了被覆盖的foreign_key
规范。
有什么方法可以解决这个问题吗?或者我在做其他明显错误的事情?
谢谢!
答案 0 :(得分:2)
正如此问题的更新以供将来参考:
从gem 0.3.3开始,现在可以显式设置外键。
acts_as_tenant(:account, :foreign_key => 'accountID')
也许这有助于找到这个问题的人。
答案 1 :(得分: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;但是,这对你没有帮助。)