Что делает config.gem (в environment.rb)? - PullRequest
9 голосов
/ 07 августа 2009

Мне сказали , что делает:

config.gem 'tzinfo'

не избавляет от необходимости require 'tzinfo'. Это правда всех драгоценных камней? Если да, что именно делает добавление config.gem WHATEVER?

Ответы [ 2 ]

12 голосов
/ 08 августа 2009

config.gem должен автоматически вызывать гем. Вам не нужно делать ручной вызов 'require'.

config.gem

  1. Сообщает Rails автоматически загрузить этот камень
  2. Сообщает Rails, что этот гем необходим для приложения, поэтому rake gems: install установит его
  3. Опция: source может указывать рельсу, чтобы он получался из нестандартного хранилища
  4. Опция: lib может указать rails загружать нестандартный файл из самоцвета (т.е. что-то не названное в честь самого самоцвета)
4 голосов
/ 08 августа 2009

Если я прав, во время инициализации среды «config.gem» позволяет вашему приложению настраивать и требовать зависимости GEM изнутри приложения, без необходимости устанавливать их вручную. (Как мы делали раньше). Вызывая «config.gem tzinfo», как вы делали выше, он автоматически требует гем в приложении. Это помогает, когда вы развертываете на внешнем сервере и вам нужно подготовить приложение вместе с необходимыми драгоценными камнями и т. Д. Затем вы можете запустить RAKE GEMS: INSTALL и рельсы вытянут все ваши драгоценные камни и потребуют их.

Следует отметить, что если вы НЕ хотите, чтобы в вашем приложении требовался драгоценный камень. Затем добавьте ": lib => false" после config.gem, т.е. (config.gem 'tzinfo': lib => false).

В некоторых случаях (я перешел по вашей ссылке), если вы получаете неинициализированный драгоценный камень, и вы установили его вручную. Убедитесь, что каталог config.gem ": lib" совпадает с правильным каталогом: lib в геме. Т.е. гем может быть упакован и установлен как "nlewis-supergem", однако мне может понадобиться указать lib на "supergem". т.е. "config.gem" nlewis-supergem ": lib =>" supergem ". Все зависит от того, как некоторые люди упаковывают свой гем и соответствующие библиотеки.

Быстрый совет вместо установки вручную, всегда устанавливайте гем через "config.gem", а затем набирайте GEMS: INSTALL, чтобы перехватить любые странные ошибки перед развертыванием.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...