Factory not registered というエラーへの対処法

はじめに

RspecでFactoryBotを使用した際、エラーが出たので内容と解決方法を書きます。
今回は以下の記事を参考にしました。
masawada.hatenablog.jp

エラー内容

$ bin/rspec  

Failure/Error: let(:user){ FactoryBot.build(:user) }
     
KeyError:
  Factory not registered: "user"
# ./spec/models/user_spec.rb:4:in `block (2 levels) in <main>'
# ./spec/models/user_spec.rb:7:in `block (2 levels) in <main>'
# -e:1:in `<main>'
# ------------------
# --- Caused by: ---
# KeyError:
#   key not found: "user"
#   ./spec/models/user_spec.rb:4:in `block (2 levels) in <main>'

前回使用した際は出なかったエラーです。
参考にした記事によるとspringのせいらしい...

解決策

今回は下記のようにspec/support内のファイルを読み込むようにしていました。

spec/rails_helper.rb
・・・
Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f }
#デフォルトはコメントアウトされています。
・・・

ですので、spec/suport/factorybot.rbというファイルを作成し、以下の内容を追加しました。

rspec/suport/factorybot.rb

RSpec.configure do |config|
  config.before(:all) do
    FactoryBot.reload
  end
end

これでエラーを回避できたのでひと段落だと思ったのですが、
コンソール上でFactoryBotを使用するとエラーが...

$ rails c --sandbox 
irb(main):002:0> FactoryBot.create(:user)
Traceback (most recent call last):
        2: from (irb):1
        1: from (irb):2:in `rescue in irb_binding'
KeyError (Factory not registered: "user")

途方に暮れていましたが、gem'factory_bot_rails'を再インストールしたところ治りました...