gpt4 book ai didi

ruby-on-rails - 为数据库中的多个客户端创建 "walled gardens"的最佳方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 06:46:40 27 4
gpt4 key购买 nike

我正在建立一个 SaaS 风格的网站,其中我将让多个客户在同一个站点上管理他们的工作流程和数据,因此也管理同一个数据库。

我什至不确定这个概念是否有一个词,但是是否有任何既定的自动分离数据的方法,以便对数据库的任何 ActiveRecord 调用都被用户的正确 client_id 过滤/限制已登录?

当然,最直接的方法是在每个 ActiveRecord 请求的末尾添加一个“where client_id = ?”并将用户的客户端 ID 放入...。

模型是否有任何前置过滤器的想法,以便任何查找方法(包括动态方法)都会自动将 client_id 添加到它们?所以我可以只执行 Model.find_by_what_I_want(foo),即使我没有明确指定它,它也会自动知道将其限制为仅由正确的客户端 ID 拥有的记录?

最佳答案

如果您使用的是 Rails 2.3+,您可以享受默认作用域:

class Model < ActiveRecord::Base
default_scope :conditions => ['client_id = ?', client_id]
end

您必须确保 client_id 已在初始化进程的某处设置。

这将确保该模型中的所有数据库查询都使用 client_id 条件。

关于ruby-on-rails - 为数据库中的多个客户端创建 "walled gardens"的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/722667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com