半分未解決ですが、ポートフォリオを作っていてこんなやらかしをした・・・という話です。
モデルの単体テストコード実行時にタイトルのエラーが出てしまったわけですが、検索しても同様の事例がなかったので書いてみました。
簡潔に、結論と応急措置に関してのみ記載します。
結論:アソシエーションに問題があった(と思われる)
インスタンスはFactoryBotを使用してまとめていましたが、下記の記述があることでエラーが発生していました。
応急措置として、削除したところエラーは消えました。
spec/factories/contents.rb
association :user
FactoryBotのassciationですね。usersテーブルのデータを引っ張りたいために記述していました。
これ自体は別におかしなものではないですが、別のコードの記述に問題があって、これが機能していないということだと思います。
その原因は調査中ですが、これができないとテストができないわけではないため、それは別稿にしたいと思います。
同じエラーが出てしまった時、上記を疑ってみるといいかもしれません。
追記
アソシエーションが上手くいかない原因が分かりました。
結論からいうと、spec/factories/user.rbのインスタンスが空っぽだったからです。
spec/factories/user.rb
FactoryBot.define do
factory :user do
end
end
何故かもう記述していたとばかり思い込んでいました。
上手くいかないのも当たり前ですね。。。
というわけで、アソシエーション先がそもそもちゃんと書けているかを疑うべきでした。