Создание собственного плагина/гема/движка для приложения Rails 3

Я следую руководству http://edgeguides.rubyonrails.org/plugins.html и кажется быть слегка устаревшим. Не могли бы вы взглянуть на это и сказать мне, какие разделы должны быть сделаны по-другому в Rails 3?

EDIT1: Ссылки на альтернативные учебники также очень приветствуются!


person Andrei    schedule 14.02.2011    source источник
comment
У меня было такое же впечатление, когда я работал с этим руководством. Руководства в целом очень полезны, но это, похоже, нуждается в небольшом обновлении/редактировании. Вас также может заинтересовать руководство из четырех частей по адресу: themodestrubyist.com [см. нижнее меню.]   -  person TK-421    schedule 14.02.2011
comment
Хороший движок: railscasts.com/episodes/277-mountable-engines   -  person Yarin    schedule 21.06.2013


Ответы (3)


Вы правы, это руководство не самое лучшее (последняя запись в журнале изменений — апрель 2010 г.).

Вместо этого я бы рекомендовал вам прочитать: https://github.com/radar/guides/blob/master/gem-development.md

person DanS    schedule 14.02.2011
comment
Я немного запутался в дереве каталогов генераторов. Может быть, я ошибаюсь, но я думаю, что в руководстве описаны немного другие каталоги, чем те, которые сгенерированы rails g plugin my_plugin_name - person Andrei; 14.02.2011
comment
Кроме того, в разделе 12.2 содержится примечание: некоторые фреймворки плагинов, такие как Desert и Engines, предоставляют более продвинутую функциональность плагинов, но фреймворки, по-видимому, предназначены в основном для Rails 2. Пожалуйста, прокомментируйте, если это неправильно. - person Andrei; 14.02.2011

Я столкнулся с этим вопросом, и ответы уже устарели. Railsguide в настоящее время обновлен: http://guides.rubyonrails.org/engines.html

Драгоценный камень enginex был интегрирован в рельсы, и теперь создать движок так же просто, как:

rails plugin new your-gem-name  --full

Подобно команде rails new, это создаст новую папку, содержащую пустой драгоценный камень, который вы должны заполнить. Этот драгоценный камень автоматически становится engine. Дополнительные параметры (например, --mountable см. в документации).

person nathanvda    schedule 31.05.2013
comment
@nathanvda- Это нуждается в исправлении. Команда для создания нового плагина — rails plugin **new** your-plugin. Чтобы создать движок, необходимо добавить параметр --full или --mountable. Объяснение этих параметров см. в моем ответе здесь: stackoverflow.com/a/17263429/165673 - person Yarin; 24.06.2013
comment
Спасибо за опечатку: действительно, я пропустил new. Упс :) В прошлый раз, когда я создавал движок, я просто сделал rails plugin new engine-name, а затем начал его заполнять. Использование опции --full действительно намного проще. Спасибо. - person nathanvda; 25.06.2013

Рекомендую посмотреть здесь:

https://github.com/krschacht/rails_3_engine_demo

Или более известный:

https://github.com/josevalim/enginex

person apneadiving    schedule 14.02.2011
comment
Очень приятно, большое спасибо! Прекрасный пример в сочетании с учебными пособиями на сайте themodestrubyist.com, рекомендованными выше @TK-421. - person Andrei; 15.02.2011
comment
Обратите внимание, что engineX несовместим с Rails 3.1+. Тоже "не надо". - person Confusion; 28.02.2012