Ruby on Rails,引擎之间的依赖关系解析



我正在处理一个现有的RubyonRails项目。当其中一个引擎成功地引用了位于另一个引擎中的库时,另一个则无法这样做

我对Ruby中的整个依赖解析是如何工作的感到非常困惑。关于Rails如何解决各种引擎之间的依赖关系,还有什么其他的事实需要了解吗?

我知道我目前对这些知识的了解是有限的,如果我真的很好地掌握了这些知识,我将能够弄清楚发生了什么。如果不在这里详细解释,你们中的任何人能给我指一下有助于我学习这些知识的资源吗?

引擎通常是宝石。每个gem通过gemspec定义自己的一组依赖项(如果Rails应用程序中只包含一个引擎,它可能会定义自己的Gemfile(bundler))

gem的依赖关系在这里有很好的讨论:http://guides.rubygems.org/patterns/#declaring-依赖

基本上,听起来引擎B依赖于引擎A,所以引擎B应该将引擎A声明为依赖项。任何引用引擎A中对象的引擎都应该将引擎A声明为依赖项。否则,您可能会遇到装载顺序问题。

最新更新