我有一个Rails 5项目,而且我对元编程领域很深。
其中一个要求是系统管理员可以动态修改某些gem依赖项(即Gemfile)。这仅限于可能添加的几个宝石,它们都具有类似的:: Rails :: Engine结构。
我一直在玩几种策略,包括<Module>.autoload :<class_name>, <file path>
,但它不会加载任何依赖项。
我想做的是在rails运行时动态加载更新的Gemfile.lock(基本上是Bundler.setup
),而不必重新启动服务器。
我可以运行bundle.install
,修改自动加载路径,再次运行Bundler.setup吗?
如果失败了,那么bundle install
然后rails重启会破坏多少?
答案 0 :(得分:0)
经过大量调查后,看起来不安全。 Bundler处理依赖关系很好,并且比我在这种情况下编写的要好。此外,Rails可以很好地处理重启({{1}}),所以我只是这样做。