Любой подход действителен.
Когда я пишу основной плагин, мне обычно легче писать его в тандеме с приложением, которое будет его использовать. Потому что мне легче спроектировать / протестировать то, что уже существует.
Однако, когда дело доходит до плагинов Engine, я предпочитаю разрабатывать их как отдельное приложение, а затем удалять все ненужные биты, когда я перемещаю его в плагин. По сути, это мини-приложения, и они должны быть полностью функциональными при установке в только что созданный проект rails.
Разрабатывая их как собственное приложение, я гарантирую правильное разделение. Это гарантирует, что я не буду случайно ссылаться на модели кода / контроллеры / представления / помощники, которые не являются частью движка, который я разрабатываю.
Если вы разрабатываете несколько плагинов типа движка таким образом, вам может понадобиться объединить несколько шагов с помощью служебного скрипта. Например, такой, который упрощает процесс превращения приложения в плагин Engine.
Это должно реструктурировать ваше приложение по мере необходимости и заполнить файлы, которые должны иметь плагины, такие как init.rb.