Τα Rails Engines είναι μικρο-εφαρμογές συσκευασμένες ως Ruby gems που παρέχουν τα δικά τους μοντέλα, controllers, views, routes και migrations.
Δημιουργία προσθέτου Rails Engine
# Παραγωγή προσαρτήσιμης μηχανής με απομονωμένο namespace
bin/rails plugin new my_engine --mountable --skip-bundle
Αρχιτεκτονική Μηχανής (Engine Architecture)
Μέσα στο 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
Μεταναστεύσεις Μηχανής (Engine Migrations)
Για την αντιγραφή των μεταναστεύσεων στην κύρια εφαρμογή:
bin/rails my_engine:install:migrations
bin/rails db:migrate