2017-07-07 59 views
0

我有一个Rails 5项目,我深入元编程的土地。如何自动加载宝石,而无需重新启动Rails?

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

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

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

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

如果不成功,那么会导致一个bundle install导致重新启动中断?

+0

我想,这是不可行的,因为当您安装或卸载任何gem时,某些配置已更改,您需要重新启动rails服务器才能检测到这些更改 –

回答

0

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

相关问题