config.gem(在environment.rb中)做什么?
I've been told,这样做:config.gem(在environment.rb中)做什么?
config.gem 'tzinfo'
并不排除需要require 'tzinfo'
。这对所有宝石都是如此吗?如果是,那么加入config.gem WHATEVER
究竟做了什么?
config.gem应该会自动需要该gem。您不应该需要进行手动“需求”调用。
config.gem
- 告诉Rails加载这个宝石自动
- 告知所需要的应用这块宝石的Rails,使耙宝石:安装将安装
- 的:源选项可以告诉轨道从非标准库中获取它
- The:lib选项可以告诉轨道从gem载入一个非标准文件(即没有以gem本身命名的东西)
如果我是正确的,在环境初始化期间'config.gem'允许你的应用程序设置并且需要应用程序内的GEM依赖项,而不需要手动安装它们。 (正如我们之前所做的那样)通过像上面那样调用“config.gem tzinfo”,它自动地在应用程序中需要gem。这有助于部署到外部服务器,并且需要准备应用程序以及必要的宝石等。然后,您可以运行RAKE GEMS:INSTALL并且导轨将拉入所有宝石并需要它们。
但需要注意的一点是,如果您不希望在您的应用中需要使用宝石。然后在config.gem后添加“:lib => false”(即config.gem'tzinfo':lib => false)。
在某些情况下,(如果您获得未初始化的gem,并且已经手动安装它)(我遵循了您的链接)。确保config.gem“:lib”目录与gem的正确的:lib目录匹配。 I.E宝石可能被打包并安装为“nlewis-supergem”,但是我可能需要将这个库指向“supergem”。即“config.gem”nlewis-supergem“:lib =>”supergem“,这一切都取决于一些人如何打包他们的宝石和相应的库。
快速提示是不是手动安装总是安装宝石通过“config.gem”,然后耙GEMS:安装在部署之前捕获任何错误奇怪
希望这有助于
此外,:。版本指定的版本(比如你在一个Gemfile中) – labyrinth 2017-05-30 20:50:36