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, однако это вам не поможет).

Другие вопросы по тегам