我考虑为我的插件添加 dotenv gem(https://github.com/bkeepers/dotenv),用于测试和开发目的。这样可以方便地按环境设置环境变量。
我在想是否遗漏了什么,是否有更好的方法来实现这一点?
我考虑为我的插件添加 dotenv gem(https://github.com/bkeepers/dotenv),用于测试和开发目的。这样可以方便地按环境设置环境变量。
我在想是否遗漏了什么,是否有更好的方法来实现这一点?
您正在尝试加载什么?您可以为所有 SiteSettings 设置
DISCOURSE_SETTING_NAME=value
这会有帮助吗?
很遗憾不行。我正在开发一个私有插件,需要设置一个环境变量来存储敏感数据,以免将其提交到版本控制系统中。
在生产服务器上设置该环境变量没问题,但我希望在运行测试时也能将其加载到测试环境中。我可以在代码中内联指定,但理想情况下,我希望有一个更具可扩展性的解决方案。
我发帖的原因是,添加那个 gem 让我感觉不太对劲。我原本以为 Discourse 应该已经有了解决这个问题的方案。
那么,我认为你可以设置类似下面的环境变量:
DISCOURSE_MY_PLUGIN_SETTING
对于测试,我认为你可能需要在 spec 中设置 GlobalSetting.my_plugin_setting,但这主要是一个猜测。
好的,我会查看 GlobalSetting
您可以在插件中设置 ENV['yourkey'] = 'yourval',这样是可行的。我今天刚用它来测试代码。
此外,您还可以安装特定于模式的 gems。我本人尚未尝试过,但这里有一个示例:discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub