我们有一个 Multi-Tenancy 的应用程序(很多用户都访问他们自己的数据,类似于 Basecamp)。
问题是,在Rails中保证用户只能看到自己账户数据的最简单易行的方法是什么?是否需要检查每个查询?
最佳答案
实现这一目标的方法:
- 使用子域,因此它的 customer.domain.com ....然后在您的应用程序 Controller 中,有一个前置过滤器,它将找到子域并设置一个@customer 变量
- 总是从客户那里获取数据,所以你说 @customer.quotes.find(params[:id]) ... 而不是 Quote.find(params[:id])
所以,是的,在 Multi-Tenancy 数据库中,您需要检查每个查询。
关于ruby-on-rails - 将数据保护到 Rails 中的特定域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247085/