Rails 3 - actions_as_tenant с пользовательским столбцом идентификатора клиента
Кто-нибудь успешно использовал Rails acts_as_tenant
драгоценный камень для мультитенантности, где столбец ID арендатора не назван xxx_id
?
моя модель похожа
has_one :tenant, :foreign_key => "tenant_code"
acts_as_tenant :tenant
Тогда я получаю свой запрос select * from [table] where tenant_id = xxx
игнорируя переопределенный foreign_key
спекуляция
Есть ли способ это исправить? или я делаю что-то еще явно не так?
Спасибо!!
2 ответа
Просто как обновление к этой проблеме для дальнейшего использования:
Начиная с версии gem 0.3.3 теперь можно явно установить внешний ключ.
acts_as_tenant(:account, :foreign_key => 'accountID')
Возможно, это поможет тому, кто найдет этот вопрос.
ActsAsTenant устанавливает собственный внешний ключ в самом геме как (псевдокод) # {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, однако это вам не поможет).