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プロジェクトを作成する際に使い回すことができます。