我正在构建 Multi-Tenancy 应用程序。

所有数据隔离都是通过每个表中的TenantID列完成的。

自动为所有租户模型处理 Multi-Tenancy 的最佳方法是什么。

例子:

Contacts.new({.....}) should automatically add :tenant => curret_user.tenant
Contacts.where({....}) should also add :tenant => curret_user.tenant

目前,我在CanCan gem中看到了类似的内容,可以获取特定用户参数的记录。但是它没有为插入和更新操作提供任何东西。也许是我不知道该怎么做。

问候,
阿列克谢·扎哈罗夫(Alexey Zakharov)。

最佳答案

如果可以通过租户对象处理所有集合,则是可能的。

这是使用Mongoid的示例:

#Find all products with price > 500 in current tenant scope

current_tenant.products.where(:price.gt => 500)

#It also work for create and save operations

current_tenant.products.create :name => "apple", :price => 200

关于ruby-on-rails - 在Rails 3中处理 Multi-Tenancy 的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3776593/

10-12 14:02