Ruby
Rails

rails _version_ new がうまくいかないときの対策

問題

例えばこういう感じで複数のバージョンがある場合

 gem list rails

*** LOCAL GEMS ***
rails (5.1.4, 5.1.2, 4.2.6, 4.1.16)

よく見るバージョンの指定方法として

rails _4.2.6_ new your_app_name

とかあるが、生成された中身を見てみると意外とインストールされている最新バージョン(上の例で5.1.4)でappが出来てしまっている事がある。

解決策

bundle init

で、まず Gemfile を作る。出来た Gemfile に以下のようにrailsを指定してやる。

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rails", "4.2.6"

この Gemfile がある同じディレクトリで

bundle exec rails new your_app_name

とすると、アンダースコアのバージョン指定をせずにGemfile指定のバージョンで生成が出来る。