RailsでActive Storageを使ったサイトを作りたくなり、Rails5.2.0にアップデートしてみました。
アップデートが完了するまでにいくつかエラーが出たので、今回はそのエラーの解決法をまとめておきます。
Rails5.2.0へのアップデート手順
Railsバージョン確認
現在のRailsバージョンは「$ rails -v」で確認できます。
1.gemを書き換え(Gemfile)
gem 'rails', '~> 5.2.0’
bootsnapが入っていない場合、次のコードも入力しておく。
gem 'bootsnap', require: false
2.bundle install
書き換えたgemをインストールする為、bundle installを行います。
ここでRailsを起動してもまだまだエラーが出ると思います。
まず、次のエラーを解決しましょう。
アプリ名/config/initializers/new_framework_defaults.rb:21:in `<top (required)>': undefined method `halt_callback_chains_on_return_false=' for ActiveSupport:Module (NoMethodError)
5.2よりhalt_callback_chains_on_return_falseは削除されたそうなので、「config/initializers/new_framework_defaults.rb」ファイルの21行目あたりに書かれている
「ActiveSupport.halt_callback_chains_on_return_false = false」をコメントアウトします。
3.Rubyのバージョンアップ
$ rbenv install --list
で最新のRubyバージョンを確認。
$ rbenv install -v 2.5.0
今回は2.5.0をインストール。
4.Rubyバージョンを切り替える
$ rbenv global 2.5.0
バージョンの切り替え。
$ rbenv version
バージョンが切り替わっているかの確認。
ここでrails起動してみるも、次のエラーが出てきました。
rbenv: bundle: command not found
The `bundle' command exists in these Ruby versions:
2.3.1
新しいRubyのバージョン用のbundlerが入ってないようです。
5.bundlerインストール
$ gem install bundler
$ bundle install
アップデート完了
これで無事にRails5.2.0にアップデートできました。
まとめ
同じ方法で解決できるかはわかりませんが、すこしでもエラー解決のヒントになればと思います。
以上「【Rails アップデート方法】Rails5.0.7から5.2.0にした手順」でした。