Создавать плагины или гемы для Rails 3? - PullRequest
2 голосов
/ 05 августа 2010

У меня есть функции, которые я хотел бы переносить между моими собственными приложениями Rails.

Интересно, должен ли я создавать гем или плагин для каждой функции, которую я хочу переносить (делить).

Они только для Rails (на данный момент), потому что они включают в себя файлы CSS, HTML, JS и изображения.

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

Но тогда, насколько я понимаю, один драгоценный камень распределяется между всеми приложениями rails в ОС. Так что это означает, что я не могу настроить его для каждого приложения Rails правильно? В этом случае, возможно, лучше создать плагин, потому что ему нужно разрешить настраивать (редактировать css, js и т. Д.) Каждую функцию и хранить его внутри самого приложения Rails, а не на уровне ОС.

Некоторые советы приветствуются!

UPDATE:

Значит, gem прекрасно работает с файлами CSS, HTML, JS и изображениями? В плагине я думаю, что вы можете иметь MVC, свои собственные модели, представления и контроллеры. Цитируется из руководств Rails «Хранение моделей, видов, контроллеров, помощников и даже других плагинов в ваших плагинах». Это тоже возможно в жемчужине? Например. Я хочу добавить расширение, которое дает мне хорошую корзину для покупок (с собственными миграциями, mvc, файлами ресурсов), которая будет подключена к текущему приложению Rails. Это возможно как драгоценный камень или только как плагин?

Ответы [ 3 ]

2 голосов
/ 05 августа 2010

Похоже, что с Rails 3 стремление к драгоценным камням, а не к плагинам, было добавлено много поддержки, чтобы заставить гем работать так же или лучше, чем плагины когда-либо делали.Хорошо построенный гем - это отличная вещь, которую можно использовать в разных приложениях и делиться ею, а также сокращает объем тестирования, который вам придется выполнять, поскольку вы можете тщательно протестировать гем до интеграции.

Для расширений Rails, использующих RailsCSS, HTML и другие ресурсы, возможно, вам нужно создать движок, чтобы объединить все это и позволить ему аккуратно вписаться в приложение.

2 голосов
/ 05 августа 2010

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

Нет необходимости использовать один драгоценный камень для всего, используя ruby. Вы можете установить несколько версий одного драгоценного камня и указать в environment.rb, что драгоценному камню требуется определенная версия. Э.Г.

config.gem 'my-gem', :version => '1.2.3'

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

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

UPDATE

Чтобы включить CSS, javascript и т. Д. Я думаю, вам нужно создать движок Rails, который затем можно будет объединить в виде плагина или гема. Я этого не делал, но здесь есть какое-то освещение здесь и здесь .

0 голосов
/ 04 сентября 2013

Начиная с Rails 4 , плагины больше не будут поддерживаться .

Драгоценные камни - путь вперед.

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