Из-за концепции, представленной здесь,
Rails::Plugin — это не что иное, как Rails::Engine, но, поскольку он загружается слишком поздно в процессе загрузки, он не имеет таких возможностей настройки, как голый Rails::Engine.
В отличие от Rails::Railtie и Rails::Engine, вы не должны наследовать от Rails::Plugin. Rails::Plugin автоматически настраивается как движок, просто помещая его в файл vendor/plugins. Поскольку это делается автоматически, вы фактически не можете объявить Rails::Engine внутри вашего плагина, иначе это приведет к двойной загрузке одних и тех же файлов. Это означает, что если вы хотите отправить движок как гем, его нельзя использовать как плагин, и наоборот.
Помимо этого концептуального различия, единственная разница между Rails::Engine и Rails::Plugin заключается в том, что плагины автоматически загружают файл "init.rb" в корне плагина во время процесса загрузки.
Задачи rake в плагинах rails устарели, вместо них рекомендуется использовать lib/tasks. Как это решить? Могу ли я просто переместить задачи плагина в lib/tasks?