в рельсах я должен быть установлен как драгоценный камень или плагин - PullRequest
4 голосов
/ 18 марта 2010

Я пытаюсь использовать плагин acts_as_audited . Должен ли я установить его как гем (поместите его в environment.rb) или как плагин?

в чем преимущество одного над другим. Позже я планирую разместить это приложение на клиентском сервере для постоянного хостинга. так что мне лучше иметь его как драгоценный камень? если это как жемчужина ... когда я помещу приложение на клиентский сервер ... мне не придется снова получать этот плагин?

Ответы [ 3 ]

1 голос
/ 25 марта 2010

В целом гемы - более надежный и поддерживаемый способ добавления функциональности в ваше приложение. В Интернете есть целая инфраструктура, встроенная в Rails для работы с гемами, которых нет для плагинов.

Например, если вы используете драгоценный камень, вы получаете полный набор заданий Rake для работы с драгоценными камнями.

В корне вашего проекта запустите ...

$ rake -T gem

(in /Users/username/project/someproject)
rake gems                      # List the gems that this rails application depends on
rake gems:build                # Build any native extensions for unpacked gems
rake gems:build:force          # Force the build of all gems
rake gems:install              # Installs all required gems.
rake gems:refresh_specs        # Regenerate gem specifications in correct format.
rake gems:unpack               # Unpacks all required gems into vendor/gems.
rake gems:unpack:dependencies  # Unpacks all required gems and their dependencies into vendor/gems.
rake rails:freeze:gems         # Lock this application to the current gems (by unpacking them into vendor/rails)

Вы также можете указать зависимости gem в вашем файле environment.rb. Это дает вам возможность автоматически устанавливать их с ...

$ rake gems install

Еще одно преимущество гемов перед плагинами заключается в том, что на системном уровне у вас есть утилита gem для поддержки гемов, которая упрощает работу.

если это как драгоценный камень ... когда я положу приложение на клиентском сервере .. я не буду должен снова получить этот плагин?

Вы можете «заморозить» драгоценные камни в своем приложении и развернуть их как часть приложения, не устанавливая их в систему. Если вы сделаете это, вам не придется снова получать гем или плагин, если вы не хотите обновить его до более новой версии.

0 голосов
/ 08 июля 2010

Возможно, вам будет проще отлаживать плагин против гема. Также хорошо, если в вашей среде IDE вам нужно искать код, который находится в дереве вашего приложения.

Я считаю, что приятно устанавливать плагины для разработки и перехода к гемам после выпуска кода.

0 голосов
/ 24 марта 2010

Насколько я понимаю, они ведут себя совершенно по-разному:

  • плагин доступен только для приложения, в котором вы находитесь. Поэтому, если вы хотите заблокировать его в своем приложении и хотите упростить доставку, используйте плагин.
  • драгоценный камень установлен для всей установки ruby. Так что лучше делить драгоценный камень между приложениями. Однако вы должны помнить, что при доставке вам необходимо дополнительно установить гем на клиентском компьютере.

Так что в вашем случае я бы предпочел использовать плагин, а не самоцвет.

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