4
2

factory_bot_rails を 6.4.0 にしたら Rails アプリが起動しなくなった

Posted at

Rails 7.0.8 で開発中のウェブアプリで,factory_bot_rails のバージョンを 6.2.0 から 6.4.0 に上げたら Rails サーバーも Rails コンソールも動かなくなった。

rails console とやると以下のようなエラーが出て落ちる。

(略)/railties-7.0.8/lib/rails.rb:47:in `configuration': undefined method `config' for nil:NilClass (NoMethodError)

      application.config

そのプロジェクトでは Gemfile で factory_bot_rails のバージョンをガチガチに固定してはおらず,当初は,factory_bot_rails のバージョンが変わったことが引き金になっているとは分からなかった。

認証系 gem の sorcery を使っていたが,いろいろ試しているうち,Gemfile から sorcery を外せばエラーが出なくなることが分かった。

sorcery は開発がやや低調(?)になっていて,Rails 7.0, 7.1 への対応はこれかららしい。
えっ? もしかして Rails 7 で sorcery 動かないの??? と焦ったが,そういうわけではなかった。

結局,現時点(2023-11-20)では,たとえば

Gemfile
gem "factory_bot_rails", "~> 6.2", "< 6.3"

のようにして factory_bot_rails のバージョンを 6.3.0 未満に抑えておけばよい(この不具合は 6.3.0 以上で起こる)。

本件は factory_bot_rails の issue として立てられていた:
https://github.com/thoughtbot/factory_bot_rails/issues/426

そして,既に 修正のプルリクエスト も作られている。ああよかった。

ところで,sorcery の開発の進捗が気になる。
といっても半年ちょっと前に最新版が出ているし,そのあとも動きがあるので開発は止まっていない。
作者さん(感謝)が思うように時間が取れないようだ。現在,追加のメンテナーを募集している:
https://github.com/Sorcery/sorcery/issues/350

4
2
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
4
2