- 公開日:2016年05月21日
記事概要
Railsのエンジン機能を、アプリケーションで利用する方法をまとめた記事です。
環境
- rbenv
- bundler
- rails 4.2.6
- ruby 2.3.0
エンジンプロジェクトの設定
作成したRailsエンジンプロジェクトをアプリケーションにフックするには、Gemfileにエンジン名とURL(パス)を記述します。
ここでは、user_engineという名称のユーザーRailsエンジンがあると仮定して話を進めます。
gem 'user_engine', :git => 'git@url.git'
gitのurlはプライベートリポジトリurlでも問題ありません。
インストールは、他のgemと同じようにbundleコマンドでインストールします。
cd {project_folder}/ bundle install
エンジンプロジェクトのマウント
gemをインストールしたら、アプリケーションにエンジンをマウントします。
mount UserEngine::Engine, at: "/user"
アプリケーションのroutes.rbファイルにこの行を記述することで、エンジンがアプリケーションの/userパスにマウントされます。
テーブル作成
エンジンプロジェクトのデータベースがアプリケーションに必要な場合は、エンジンのmigrationをアプリケーションにコピーします。
以下のコマンドを利用します。
cd {project_folder}/ bundle exec rake user_engine:install:migrations Copied migration 20160520033732_create_tests.user_engine.rb from user_engine
コマンド実行後に{project_folder}/db/migrate/フォルダにエンジンからコピーしたマイグレーションが追加されていることを確認します。
存在を確認したら、通常のmigrateコマンドを叩きます。
bundle exec rake db:migrate RAILS_ENV=development
tableが作成されたら準備完了です。
アプリ立ち上げ
アプリケーションを立ち上げます。
cd {project_folder}/ // サーバー立ち上げ rbenv exec bundle exec rails s -b 0.0.0.0
成功した場合はサーバーが立ち上げり、プロジェクトでフックしたエンジンの機能が利用できるようになっています。
まとめ
Railsのエンジン機能は、スタートアップなどで、高速に色々な機能実装をしていく場合に役立ちます。
作成したエンジンは他のプロジェクトでも使いまわせます。
エンジンプロジェクトの資産がたまれば、さらに多くのアプリを高速に量産できるようになります。
うまくエンジンを利用して、疎結合な優れたアプリを量産してください。
以上。
0 件のコメント:
コメントを投稿