Rista Tech Blog

株式会社リスタの技術?ブログ

Railsアプリのrubyを2.7.0にしてみたけど切り戻した

ピロリ菌検査で最近初めて胃カメラ経験した@mikedaです。 お正月に里帰りしたら一族全員ピロリ菌もちだったので、実家の井戸水が原因だと思われます。

Ruby 2.7.0が出ていたので、JOBLISTJOBLISTマガジンのRailsアプリのrubyを2.7.0にしてみたのですがいくつかエラーが出て、最終的に切り戻したので内容をメモしておきます。

config gemのエラー

最初rubyのバージョンを上げた時は、config gemでエラーが出てrailsが起動しませんでした。

/Users/mikeda/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/config-2.0.0/lib/config/options.rb:177:in `method_missing':
undefined method `new_ostruct_member' for #<Config::Options> (NoMethodError)

こちらは以下のissueで対応されて、config gemのバージョンを2.2.1にすると起動出来るようになりました。 https://github.com/rubyconfig/config/issues/259

meta-tags gemのエラー

config gemのバージョンアップ後、ruby 2.7.0でCIが通ることを確認し、本番のrubyを2.7.0に切り替えました。

しかし今度は数分に1回の頻度で、meta-tags gemのdisplay_meta_tagsで以下のエラーが発生するようになりました。

ActionView::Template::Errorjobs#show
ret: 2, hash modified during iteration

meta-tagsのレポジトリでissueが出来ていたのでしばらく様子を見ていたのですが、
https://github.com/kpumuk/meta-tags/issues/209

1月13日に@jnchitoさんからruby本体側で修正が入ったとのコメントがありました。
https://github.com/kpumuk/meta-tags/issues/209#issuecomment-573470241
ありがとうございました!

というわけで修正版のrubyがリリースされたら改めてバージョンアップ作業をしようと思います。

4/1追記

Ruby 2.7.1がリリースされたので本番のrubyをアップデートしたところ、該当のエラーは出ず、無事バージョンアップが完了しました。

www.ruby-lang.org