如何在不重新启动 Rails 的情况下自动加载 gem?



我有一个 Rails 5 项目,我深耕元编程领域。

其中一个要求是某些 gem 依赖项(即 Gemfile(可以由系统管理员即时修改。这仅限于可能添加的几个宝石,它们都具有相似的 ::Rails::引擎结构。

我一直在玩几种策略,包括<Module>.autoload :<class_name>, <file path>但它不会加载任何依赖项。

我想做的是在 rails 运行时动态加载更新的 Gemfile.lock(基本上是Bundler.setup(,而无需重新启动服务器。

我可以运行bundle.install,修改自动加载路径,再次运行Bundler.setup,类似的东西吗?

如果做不到这一点,那么bundle install然后重启轨道会不会造成很大干扰?

经过大量调查,这似乎不是一件安全的事情。 Bundler 可以很好地处理依赖项,并且比我在这种情况下可以编写的要好。此外,Rails 可以很好地处理重启(touch restart.txt(,所以我会这样做。