sorceryでログイン機能実装時にタイトルのような、undefined method 'after_save' for {:if=>...}のエラーが出てはまってしまったため、その解決策を書かせて頂きます。
結論を言うと、sorceryのversionを最新にすることで解決しました。
私の環境はと言うと
ruby 3.1.2
rails 6.1.5
で実装をしていました。
いつも通りrails newしてログイン機能をsorceryで実装しようとしたら、上の写真のようなエラーが出てきました。
色々な記事を見てきて、そのうちの解決策の一つに、rubyのversionを2系に落とすと良いという記事がありました。
rubyのversionを2系に落として実装したところ写真のようなエラーは無くなりました...
しかし、rubyの3系で実装したいと思っていたので、このままでは意に反することになる、
そこでsorceryのversionを確認してみると
0.14.1
になっていました。
どうやらsoreceryのversionが古いとこのようなエラーが発生するみたいです。
最新版をgoogleで検索すると 0.16.3と書いてあったのでversionを指定してinstallするとこのエラーは解決しました。
gem 'sorcery', '0.16.3'
と記述を直し、bundle installするとエラーが解決しました。