Referință rapidă

Fișă de referință pentru module și pluginuri Rails (Engines)

Ghid rapid de referință pentru Rails Engines și pluginuri: generarea motoarelor, inițializatoare, namespace-uri izolate și montarea rutelor.

· Publicat

Rails Engines sunt mini-aplicații împachetate sub formă de gem-uri Ruby care furnizează propriile modele, controllere, vizualizări, rute și migrări.

Generarea unui plugin Rails Engine

# Generare engine montabil cu namespace izolat
bin/rails plugin new my_engine --mountable --skip-bundle

Arhitectura modulului (Engine)

În 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

Montarea în aplicația gazdă

În fișierul config/routes.rb al aplicației gazdă:

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

Migrările modulului (Engine Migrations)

Copierea migrărilor engine-ului în aplicația principală:

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

Referințe

Subiecte conexe