Railsアプリを新規作成する場合、通常「rails new」を実行します。
しかしこの方法は、システム単位で管理されているRailsのGemファイルを使ってプロジェクトを作成するため、プロジェクト単位でGemファイルを管理したい場合の方針とは相容れません。
このような場合、Railsプロジェクトを作成するためのプロジェクト「rails-factory」を作成し、このプロジェクトを利用して目的のRailsプロジェクト「rails-demo」を作成する方法を使うことができます。
なお、今回の方法は以下の記事を参考にさせて頂きました。
rails-factoryプロジェクトの作成
まずRailsアプリケーションを作成するためのプロジェクト「rails-factory」を作成します。
mkdir rails-factory
cd rails-factory
bundle init
rails-factoryディレクトリ内にGemfileが作成されます。Gemfileを編集し、「gem “rails”」のコメントを外します。最新版以外のRailsを使いたい場合バージョンを指定します。
# frozen_string_literal: true
source "https://rubygems.org"
gem "rails", "6.1.6.1"
「bundle install」を実行します。
bundle config set --local path vendor/bundle
bundle install
これで、このディレクトリ内で「bundle exec rails」が実行できるようになります。
rails-demoプロジェクトを作成
作成したrails-factoryプロジェクト内で、「bundle exec rails new」を実行し、目的のRailsプロジェクト「rails-demo」を作成します。
bundle exec rails new ../rails-demo --skip-bundle
「–skip-bundle」をつけないとプロジェクト作成時に「bundle install」が実行されてしまいます。プロジェクト単位でGemファイルをインストールしたい場合付けておいた方が安全です。
プロジェクトを作成したらそのディレクトリに移動し「bundle install」を実行します。
bundle config set --local path vendor/bundle
bundle install
これで準備完了です。
2つ目以降のプロジェクトを作成
rails-factoryを保存しておくと、以降Railsプロジェクトを作成する際に使い回すことができます。