В чем разница между гемами и плагинами? - PullRequest
5 голосов
/ 16 августа 2010

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

Какая основная разница между ними?

Ответы [ 5 ]

6 голосов
/ 16 августа 2010

Основным отличием является то, что гем - это то, что нужно установить в системе, в которой работает приложение Rails, тогда как плагин развертывается вместе с вашим приложением. В частности, плагины находятся вендором / плагинами, тогда как гемы должны быть установлены с помощью rake gem install gem_name.

Что касается того, когда использовать каждый из них, то, как правило, легче обновлять самоцветы, но более конкретно, некоторые самоцветы используют собственный код C и скомпилированы специально для данной операционной системы (например, Nokogiri). Они должны быть установлены как драгоценные камни, поскольку они не будут работать при переносе в другую систему. Принимая во внимание, что некоторые вещи, например acts_as_commentable, используют прямой код ruby ​​и могут перемещаться из системы в систему.

1 голос
/ 02 декабря 2010

Когда вы устанавливаете плагин в проекте, его можно использовать только в соответствующем проекте. Но если вы установите гем, он может быть использован любым проектом. Это главное отличие Gem & Plugins.

1 голос
/ 17 августа 2010

С RailsGuides :

Плагин Rails является либо расширением, либо модификацией базовой платформы.

С Rubygems.org :

Gem - это упакованное приложение или библиотека Ruby.

Итак, самое большое различие между этими двумя заключается в том, что плагины Rails специально созданы для использования в приложениях Ruby on Rails, а гемы - нет.

Например, давайте посмотрим на Geokit .

Драгоценный камень (geokit-gem) обеспечивает основные операции на основе определения местоположения.

Плагин Rails (geokit-rails) смешивает искатели местоположения с ActiveRecord.

Здесь вы можете видеть, что камень обеспечивает ядро ​​Geokit. Этот драгоценный камень можно использовать где угодно, а не только в приложении Rails. Плагин предоставляет дополнительные возможности для тех, кто использует геокит в приложении Rails. В этом случае использовать плагин и гем необязательно.

0 голосов
/ 17 августа 2010

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

0 голосов
/ 16 августа 2010

Драгоценные камни распространяются rubygems, который является официальным менеджером пакетов библиотеки ruby. Плагины - это (вероятно, хакерский) способ для плагинов rails. Я рекомендую вам использовать драгоценные камни, когда это возможно, из-за разрешения зависимостей. Rails3 восстанавливает это, упаковывая с Bundler.

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