gpt4 book ai didi

ruby-on-rails - rails模型的条件类继承

转载 作者:行者123 更新时间:2023-12-04 07:34:26 25 4
gpt4 key购买 nike

我有一个 Multi-Tenancy Rails 应用程序正在运行。
我希望范围为当前租户的模型(如这里的本文模型)继承租户范围模型,如下所示

class Article < TenantScoped

end

这很好用。我只接收范围为当前租户的对象。

但现在我创建了一个管理界面,我希望能够向所有租户添加文章。但是我的管理界面充当租户,并且模型的范围是它。
最后没有显示任何条目。

我建议对此的最佳解决方案是有条件地从租户范围模型中继承,如下所示
class Article

unless SudoTenant.current?
< TenantScoped
else
< ActiveRecord::Base
end

end

我一直在寻找 ruby​​ 类的条件继承,但还没有找到任何东西。我的语法在这里是错误的,或者这甚至可能吗?

提前致谢

最佳答案

您可以使用 block 语法定义类:

if SudoTenant.current?
Article = Class.new(ActiveRecord::Base) do
# your code
end
else
Article = Class.new(TenantScoped) do
# your code
end
end

我强烈建议使用 mixins 而不是条件继承,它更干净、更清晰、更明显。

关于ruby-on-rails - rails模型的条件类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8611965/

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