2009-08-07 95 views

回答

12

config.gem應該會自動需要該gem。您不應該需要進行手動「需求」調用。

config.gem

  1. 告訴Rails加載這個寶石自動
  2. 告知所需要的應用這塊寶石的Rails,使耙寶石:安裝將安裝
  3. 的:源選項可以告訴軌道從非標準庫中獲取它
  4. The:lib選項可以告訴軌道從gem載入一個非標準文件(即沒有以gem本身命名的東西)
+0

此外,:。版本指定的版本(比如你在一個Gemfile中) – labyrinth 2017-05-30 20:50:36

4

如果我是正確的,在環境初始化期間'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:安裝在部署之前捕獲任何錯誤奇怪

希望這有助於

+0

謝謝': lib => false' :)在遺留應用程序上工作很痛苦! – atmaish 2014-07-10 13:53:20

+0

太棒了!解釋 – Abhiram 2017-04-17 15:26:21