クイックリファレンス

Railsエンジン&プラグイン チートシート

Rails Enginesおよびプラグインのクイックリファレンス:エンジンの生成、イニシャライザ、名前空間の分離、ルートのマウント、Gem設定。

· 公開日

Rails Enginesは、独自のモデル、コントローラー、ビュー、ルーティング、マイグレーションをパッケージ化したRuby Gem形式のマイクロアプリケーションです。

Rails Engineプラグインの生成

# 名前空間を分離したマウント可能なフルスタックエンジンの生成
bin/rails plugin new my_engine --mountable --skip-bundle

エンジンアーキテクチャ

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

エンジンのマイグレーション

エンジンのマイグレーションファイルを親アプリへコピー:

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

参考資料

関連テーマ