environment.rb中的config.gem

Hol*_*ola 2 environment configuration rubygems ruby-on-rails

让我们说在Rails应用程序中你有一些你在你的应用程序中使用的宝石(我们将它们称为" 主要宝石 "),并且为了便携性而销售它们.

让我们说那些" 主要宝石 "也需要他们自己的宝石 - 我们称之为" 次要宝石 ".

当您设置environment.rb时,您必须说:

config.gem 'primary-gem'
Run Code Online (Sandbox Code Playgroud)

对于您直接使用的任何宝石.

但是,你还需要说...

config.gem 'secondary-gem'
Run Code Online (Sandbox Code Playgroud)

即使您没有在您的应用中明确使用该宝石?

或者它是否足以将gem包含在您的vendor/gems目录中,以便它被您的应用程序选中?

Szt*_*upY 5

在部署时,rails知道你的依赖关系,所以如果你想冻结你的宝石,那么你可以运行

rake gems:unpack:dependencies
Run Code Online (Sandbox Code Playgroud)

将它们冻结到供应商目录中.

然而,在运行时,加载它的依赖项是gems的工作,通常gems会这样做,所以config.gem"primary"应该可以工作.