0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rails newしたときにインストールしている最新のRailsバージョンでアプリが作成されない場合の対処法

Posted at

rails newを実行したときにインストールしているRailsの最新バージョンでアプリが作成されず、どハマりしたので投稿します。

はじめに

バージョンを指定せずにrails newすると、インストールしているRailsの最新バージョンでアプリが作成されます。
が、私が遭遇したのはrails newすると最新版ではなく、古いバージョンでアプリが作成されるという現象でした。しかもそのバージョンはgem listコマンドでも表示されないバージョンでした。。

問題の原因

先に原因を書くと、環境変数の設定に問題がありました。

/usr/local/bin/Users/user_name/.rbenv/shimsより先に定義されており、$PATHは先に書いたほうが優先されるため、/usr/local/bin/railsが使われたことが原因でした。
つまり、rbenvで管理されているRailsのバージョンではなく、macにインストールされているRailsが参照されていました。

$ echo $PATH
/usr/local/bin:(中略)/Users/user_name/.rbenv/shims:/Users/user_name/.rbenv/bin:
(以下略)

問題発生から解決までの流れ

起きたこと

新規のアプリを作成しようとしてrails newコマンドをバージョン指定無しで実行したところ、インストールしている最新バージョン(6.0.3)ではなく、古いバージョン(5.2.3)で作成されました。

Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.3.7'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.3'
(以下略)

Railsのバージョンを確認したところ5.2.3になっていたのですが、gem listコマンドで確認したバージョンには5.2.3は含まれていませんでした。


$ rails -v
Rails 5.2.3

which railsでRailsの実行場所を確認すると、/usr/local/bin/railsになっていました。こうなっていた原因は上に書いたとおり、環境変数でrbenvのパスより先に/usr/local/bin/railsが定義されていたためです。

$ which rails
/usr/local/bin/rails

蓋を開けてみると単純な問題だったのですが、一度gemをすべてアンインストールしたりと無駄なこともしてしまったので、同じ問題で困った方の助けになれば幸いです。

他に原因として考えられること

rails -vで存在しないはずのRailsのバージョンが表示されるときは、railtiesも疑わしい場合があるようです。
Railsのバージョンがなんかおかしい時はrailtiesをチェック - かなりすごいブログ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?