gpt4 book ai didi

ruby-on-rails - Multi-Tenancy 和使用 ruby​​ 委托(delegate)与 NoSQL 的租户上下文

转载 作者:行者123 更新时间:2023-11-29 13:54:39 24 4
gpt4 key购买 nike

我有一个 Multi-Tenancy 应用程序(rails 后端),我需要将与租户无关的预填充项目列表与租户特定属性混合。

想知道我是否有人使用委托(delegate)来完成这项工作并且性能不错,而不是从 Postgres 冒险进入 MongoDB

示例模型:

Class EquipmentList < ActiveRecord::Base
attr_accessible :name, :category_id

has_one :tenant_equipment_list

delegate :alt_name, to: tenant_equipment_list

end

Class TenantEquipmentList < ActiveRecord::Base
attr_accessible :alt_name, :group, :sku, :est_price, :equipment_list_id

belongs_to :equipment_list

default_scope { where(tenant_id: Tenant.current_id) }
end

最佳答案

我已经在一个低流量站点上成功地运行了它。 Rails 后端在输出到 json 时处理得很好。

意识到最好使用租户版本作为外键并将主属性委托(delegate)给租户。看起来像这样:

Class EquipmentList < ActiveRecord::Base
attr_accessible :name, :category_id

has_one :tenant_equipment_list



end

Class TenantEquipmentList < ActiveRecord::Base
attr_accessible :alt_name, :group, :sku, :est_price, :equipment_list_id

belongs_to :equipment_list

delegate :name, to: tenant_equipment_list #prefix: true if you want

default_scope { where(tenant_id: Tenant.current_id) }
end

关于ruby-on-rails - Multi-Tenancy 和使用 ruby​​ 委托(delegate)与 NoSQL 的租户上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34624857/

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