Подтвердить что ты не робот

Какая разница между драгоценным камнем и плагином?

Я новичок в Rails, и я смущен концепцией драгоценных камней и плагинов. Может ли кто-нибудь объяснить их мне?

4b9b3361

Ответ 1

Плагины - это просто библиотеки, загружаемые из определенного каталога, камни загружаются через Bundler или RubyGems.

Если это действительно делает различия, это обслуживание и управление. Что происходит, когда вам нужен последний и самый большой плагин authlogic, вам нужно обновить файлы в вашем каталоге. Это звучит не так плохо, когда он один плагин, но как насчет чего-то, что постоянно обновляется? Была/есть существующая система для упаковки и распространения кода (RubyGems), которая поддается управлению такими вещами.

Снова повторите пример authlogic, что произойдет, если новая версия требует какой-то другой зависимости сейчас? С RubyGems файл gem явно определяет это отношение, система плагина не делает этого, и такое определение было бы излишним.

С появлением Bundler в rails 3.x становится очень легко управлять и распространять драгоценные камни, которые использует ваш проект.

TL; DR: плагины - это, в основном, драгоценные камни без информации о упаковке.

Ответ 2

Плагины используются все меньше и меньше, поэтому придерживайтесь драгоценных камней. Драгоценные камни и плагины могут делать то же самое, поэтому они сбивают с толку. Однако различия заключаются в том, как они организованы и, самое главное, управление драгоценными камнями, например bundler или config.gem. Гораздо проще управлять драгоценными камнями и их версиями. Плагины должны быть установлены в папке vendor, где в этой папке также можно установить gems, если они должны быть настроены или их можно установить в каталоге gem, если рельсы понимают, где находится этот каталог. Когда рельсы запускались, большинство людей использовали плагины для добавления функциональности, но разработчики быстро поняли, что драгоценные камни предлагают лучший способ для упаковки и обновления библиотек, поэтому большинство плагинов перенесены на драгоценные камни, и в настоящее время создается меньше плагинов.

Ответ 3

Gem и плагин

gem хранится в файлах lib

Gem - это упакованное приложение Ruby, использующее систему упаковки, определенную RubyGems.

плагины хранятся в вендорах/плагинах

Плагин Rails - это упакованное приложение Ruby, которое расширяет базовую структуру Rails.