Краткий справочник

Шпаргалка по движкам (Engines) и плагинам Rails

Краткое справочное руководство по Rails Engines и плагинам: создание движков, инициализаторы, изолированные пространства имен и монтирование маршрутов.

· Опубликовано

Rails Engines — это мини-приложения, упакованные как Ruby gem, предоставляющие собственные модели, контроллеры, представления, маршруты и миграции.

Генерация плагина Rails Engine

# Создание монтируемого полнофункционального движка с изолированным пространством имен
bin/rails plugin new my_engine --mountable --skip-bundle

Архитектура движка

В lib/my_engine/engine.rb:

module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine

    initializer "my_engine.assets" do |app|
      app.config.assets.precompile += %w[my_engine/application.css]
    end
  end
end

Монтирование в хост-приложении

В файле config/routes.rb хост-приложения:

Rails.application.routes.draw do
  mount MyEngine::Engine => "/blog"
end

Миграции движка

Для копирования миграций движка в основное приложение:

bin/rails my_engine:install:migrations
bin/rails db:migrate

Полезные ссылки

Связанные темы