This page is not available in every language. Missing translations are disabled in the language selector.

Quick reference

Rails Engines & Plugins Cheatsheet

A quick reference guide for Rails Engines and plugins: generating engines, initializers, isolated namespaces, mounting routes, and gem configuration.

· Published

Rails Engines are mini-applications packaged as Ruby gems that provide their own models, controllers, views, routes, and migrations.

Generating a Rails Engine Plugin

# Generate a mountable, full-stack engine with isolated namespace
bin/rails plugin new my_engine --mountable --skip-bundle

Engine Architecture

Inside 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

Mounting in Host Application

In the host application's config/routes.rb:

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

Engine Migrations

To copy engine migrations into the parent application:

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

References

Related topics