バージョン指定してrails new

最新のrails7系ではなくrails6系でrails new したかったのでバージョン指定する手順を調べました。

結論

  1. 指定したいRailsをgem経由でインストール
  2. rails _バージョン_ new アプリ名 でバージョンを指定してnewする

インストールされているrails gemのバージョンを確認

gem info コマンドでインストール済みのrails gemの情報を確認

$ gem info -e rails

*** LOCAL GEMS ***

rails (7.0.3)
    Author: David Heinemeier Hansson
    Homepage: https://rubyonrails.org
    License: MIT
    Installed at (7.0.3): /Users/karlley/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0

    Full-stack web application framework.

rails の全バージョンの確認

以下のページでrails gemの全バージョンが確認できます。

railsの全バージョン履歴 | RubyGems.org | コミュニティのGemホスティングサービス

コマンドラインから確認する場合はgem search コマンドに以下のオプションを追加します。

  • -e: 文字列で検索
  • -a: 全バージョンを表示
$ gem search -ea rails

指定したいバージョンのrails gem をインストール

インストールされているrails gemのバージョンを確認

  • -l: ローカルのgemを検索
$ gem list rails -l

*** LOCAL GEMS ***

importmap-rails (1.1.2)
rails (7.0.3)
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.4.3)
sprockets-rails (3.4.2)
stimulus-rails (1.0.4)
turbo-rails (1.1.1)

指定したいバージョンのrails gemをインストール

$ gem install rails -v 6.1.6
$ gem list rails -l

*** LOCAL GEMS ***

importmap-rails (1.1.2)
rails (7.0.3, 6.1.6) # 6.1.6が追加されている
rails-dom-testing (2.0.3)
rails-html-sanitizer (1.4.3)
sprockets-rails (3.4.2)
stimulus-rails (1.0.4)
turbo-rails (1.1.1)

バージョンを指定してrails new

バージョン指定でrails new

$ rails _バージョン_ new アプリ名
$ rails _6.1.6_ new helloworld

バージョン確認

$ cd helloworld
$ rails -v
Rails 6.1.6
$ gem info -e rails

*** LOCAL GEMS ***

rails (7.0.3, 6.1.6)
    Author: David Heinemeier Hansson
    Homepage: https://rubyonrails.org
    License: MIT
    Installed at (7.0.3): /Users/karlley/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0
                 (6.1.6): /Users/karlley/.rbenv/versions/3.0.3/lib/ruby/gems/3.0.0

    Full-stack web application framework.

バージョン指定してrails newする場合の注意点

  • Rubyのバージョンに付随してrails gemのバージョンは変化する
  • カレントディレクトリが変わるとrails gemのバージョンが変化する

まとめ

バージョン指定してnewするだけですごく時間が掛かってしまった。 学ぶことは無限にあるので必要になったタイミングで深堀りするような行動に変えていこう。

参照

【Ruby on Rails】Railsをバージョン指定してインストールする方法

Railsチュートリアルでrails newするときはバージョンを指定しよう - Qiita