Szybka pomoc

Ściągawka z silników (Engines) i wtyczek w Rails

Szybki przewodnik po silnikach (Engines) i wtyczkach Rails: generowanie silników, initializery, izolowane przestrzenie nazw i montowanie tras.

· Opublikowano

Silniki Rails (Engines) to mini-aplikacje spakowane jako gemy w Ruby, które udostępniają własne modele, kontrolery, widoki, trasy i migracje.

Generowanie wtyczki typu Rails Engine

# Wygenerowanie montowalnego silnika z izolowaną przestrzenią nazw
bin/rails plugin new my_engine --mountable --skip-bundle

Architektura silnika (Engine)

Wewnątrz 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

Montowanie w aplikacji nadrzędnej (Host)

W pliku config/routes.rb aplikacji hosta:

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

Migracje silnika

Kopiowanie migracji silnika do aplikacji głównej:

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

Materiały referencyjne

Powiązane tematy