gpt4 book ai didi

ruby-on-rails - Rails 部署,每个客户端一个环境是正确的方法吗?

转载 作者:行者123 更新时间:2023-12-05 03:53:23 25 4
gpt4 key购买 nike

我们的应用程序是医院的 SaaS,部署在我们所有客户的一台生产服务器上(与 linux+nginx+puma 相同的代码)。默认情况下,有三个:测试、开发和生产。但在我们的例子中,我们有 10 个环境配置文件指向文件夹“config/environments/”中的 10 个客户端配置文件。我们给环境文件命名医院,例如

config/environments/hospital1.rb
config/environments/hospital2.rb
config/environments/hospital3.rb
...

有几个付费功能是用引擎开发的。

现在假设 hospital1 为 feature1 支付了费用。如何只为 hospital1 激活 feature1 ?我目前正在 Gemfile 中执行此操作

group :hospital1 do
gem 'feature1', path to ....
end

问题:这是将生产环境替换为特定于客户的环境并能够在 GEMFILE 中启用/禁用 gem 的好方法吗?

欢迎任何建议!

最佳答案

就个人而言,我更愿意将环境视为技术层面的事物,而不是应用程序逻辑的事物。因此,我会尽量保留尽可能少的环境。如果你想在 Gemfile 中有条件语句,也许使用环境变量会更好?有点像

if ENV['FEATURE_1_ENABLED']
gem 'feature1', path to ....
end

您甚至可以通过为每个医院创建一个 .env 文件并使用 Dotenv.load 加载适当的文件来自动管理这些变量。

关于ruby-on-rails - Rails 部署,每个客户端一个环境是正确的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682859/

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