做(可安装)Rails引擎继承宝石?

时间:2018-04-09 14:33:34

标签: ruby-on-rails ruby-on-rails-4 inheritance

当我生成--mountable Rails引擎时,它会自动继承根目录中的所有父应用程序的宝石(以及"分配的"环境groups){ {1}},并且孩子Gemfile是否允许添加其他宝石?如果您希望覆盖父级Gemfile环境,是否可以在子级引擎group中完成?

1 个答案:

答案 0 :(得分:3)

可安装的引擎只是一个捆绑为gem的Rails功能。

Gems可以拥有自己的依赖项,这些依赖项在.gemspec文件中声明。

  

Do(可安装)Rails引擎继承Gems吗?

没有。并不是的。由于gem安装在应用程序中,理论上它可以使用应用程序中存在的任何依赖项,但依赖于隐式依赖项并不是一个好主意,因为它不允许单独测试gem。

  

如果您希望覆盖父级的组环境,可以在子引擎的Gemfile中完成吗?

没有。您不应该在Gemfile中声明gems依赖项,因为gems是使用gem命令部署的 - 而不是Bundler。

有关Bundler的核心贡献者之一的详细解释,请参阅Clarifying the Roles of the .gemspec and Gemfile