没有子域的多租户

时间:2014-11-16 20:59:10

标签: ruby-on-rails multi-tenant

我发现大多数关于多租户应用程序的文档/教程似乎更喜欢通过子域进行范围界定。旧的经典风格的大本营可能会为此设置一个特权,每个用户/公司都有一个http://mycompany.app.com地址。例如,像Harvest这样的应用也会这样做。

我最近注意到新的大本营不再有公司子域......

只是想知道通过子域确定范围的优势是什么,比如通过像Pundit或CanCan这样的宝石确定用户数据的范围?

1 个答案:

答案 0 :(得分:3)

使用Pundit或CanCan(CanCanCan)更多的是用户(非管理员)可以在应用程序中执行的角色/授权。

使用没有单独模式的子域的Mutlitenancy只会在您的表中提供唯一的account_id,就好像您使用postgres模式一样,它为每个子域(帐户)创建一个单独的模式;所以每个子域/帐户都有自己的表副本..

您也可以通过使用https://github.com/dsaronin/milia

这样的gem来使用不使用子域的多租户

每个人都有利弊。另请查看此视频:http://confreaks.com/videos/111-aac2009-writing-multi-tenant-applications-in-rails