محركات Rails (Engines) هي تطبيقات مصغرة يتم تجميعها كحزم Ruby gems وتوفر نماذجها ومتحكماتها وطرق عرضها ومساراتها وترحيلاتها الخاصة.
توليد إضافة محرك Rails (Engine)
# توليد محرك كامل قابل للتركيب مع مساحة أسماء معزولة
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
التركيب في التطبيق المضيف (Mounting)
في ملف 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