Référence rapide

Aide-mémoire moteurs et extensions Rails

Un guide de référence rapide pour les moteurs (Engines) et extensions Rails : génération de moteurs, initialiseurs, espaces de noms isolés et montage de routes.

· Publié le

Les Rails Engines sont des mini-applications packagées sous forme de gems Ruby fournissant leurs propres modèles, contrôleurs, vues, routes et migrations.

Générer un moteur Rails (Engine)

# Générer un moteur montable complet avec espace de noms isolé
bin/rails plugin new my_engine --mountable --skip-bundle

Architecture du moteur

Dans 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

Montage dans l'application hôte

Dans le fichier config/routes.rb de l'application hôte :

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

Migrations du moteur

Pour copier les migrations du moteur dans l'application hôte :

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

Références

Sujets associés