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

How would I autoload a gem without having to restart Rails?

我有一个 Rails 5 项目,而且我对元编程领域很感兴趣。

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

我玩了好几种策略,包括<Module>.autoload :<class_name>, <file path>但是它没有加载任何依赖项。

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

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

否则,bundle install 然后 rails 重新启动会中断很多吗?

经过大量调查,看起来这不是一件安全的事情。 Bundler 可以很好地处理依赖关系,并且比我在这种情况下可以编写的更好。此外,Rails 可以很好地处理重启 (touch restart.txt),所以我就这样做。