はじめに
新しいバージョンを試したいときに、
rails new
で自分が指定するオプションとかを毎回忘れるのでメモ
環境
- OS: Mac M1
- homebrew 利用
- bundler 利用
- mise利用(Rubyのバージョン管理ツールに利用)
- 作成する Rails アプリケーション
- 最新安定バージョンのruby
- 最新安定バージョンのrails
- テストはRSpec
- この記事を作成したときのバージョンは下記
- Ruby: 3.3.6
- Rails: 8.0.1
本題
RubyとRails の最新安定バージョンをチェック
asdf のバージョンアップ
- mise についてはこちら
- asdf をバージョンアップして最新のrubyをインストールできるようにする
brew update && brew upgrade mise
ruby をインストール
mise install ruby インストールしたいバージョン
新しいRailsアプリケーションを作成するディレクトリの設定を更新
下記のような、workspace
というディレクトリ内に新しい Rails アプリケーションを作る想定
└── workspace
└── 新しいRailsアプリケーション
Gemfileの作成 ( 初回のみ)
下記は、 workspace
ディレクトリに初めてRailsアプリケーションを作成する際のみ必要な手順。
作ったことがある場合はやらなくてよい。
Gemfile 作成
workspace
ディレクトリにGemfileを作成する
bundle init
Gemfile 更新
gem "rails"
のコメントアウトを外す
(Railsの最新安定バージョンを入れたいので、バージョン指定はしていない。
特定のバージョンをインストールしたい場合は、バージョンを指定する)
# frozen_string_literal: true
source "https://rubygems.org"
- # gem "rails"
+ gem "rails"
バージョンを指定する場合の書き方の例:
gem "rails", "8.0.1"
Rubyバージョン設定
workspace
ディレクトリで使うRubyのバージョンを設定する
(.tool-versions
が作成 or 更新される)
cd workspace
mise local ruby 使いたいRubyのバージョン
bundle update
実行
Gemfile.lock
が更新されて、gem がインストールされる
(初めて実行する際は、 Gemfile.lock
が作成される)
bundle update
想定しているバージョンのRailsになっているかどうかは、Gemfile.lock
の中身を確認する
例:
rails (8.0.1)
現在の workspace
ディレクトリの状態
下記のような構成になっている
└── workspace
├── .ruby-version
├── Gemfile
└── Gemfile.lock
Railsアプリケーションの作成
-
--skip-bundle
:bundle install
はしない -
--skip-test
:bundle install
はしない -
--database=データベースの種類
: データベースの種類を指定 -
その他のコマンドは
bundle exec rails new -h
で確認可能
bundle exec rails new sample --skip-bundle --skip-test --database=データベースの種類
rubyのバージョン設定
作成したアプリケーションで使うRubyのバージョンを設定する
cd sample
mise local ruby 使いたいRubyのバージョン
RSpecの設定
最新は、公式のREADMEを参照する。以下は2024/12/15時点の内容。
- 下記をGemfileに追記
Gemfile
group :development, :test do gem 'rspec-rails', '~> 7.0.0' end
-
bundle insall
実行bundle install
- generate コマンド実行
bin/rails generate rspec:install
git の commit
git の user 設定
コミットログに残るユーザー名と名前の設定
git config --local user.name ユーザー名
git config --local user.email メールアドレス
Initial commit
ファイルの差分を確認して、問題なければ commit する
git add .
git commit -m "Initial commit"
(おまけ)RuboCopの設定
最新は、公式のREADMEを参照する。以下は2024/12/15時点の内容。
Rails7.2以降はデフォルトでrubocop-rail-omakase が入っているので、rubocop-railsを入れる必要がない
- 下記をGemfileに追記
Gemfile
group :development do # これがすでに書かれている場合は、 rubocop-rails は書かなくて良い gem 'rubocop-rails-omakase', require: false gem 'rubocop-rspec', require: false end
- bundle install 実行
-
.rubocop.yml
作成.rubocop.ymlrequire: - rubocop-rspec
-
rubocop -A
実行
おわりに
脳死でできるようにしておくと、
新しいバージョンを試すときのハードルが下がるので楽。