Rails7(alpha2)ではransackの更新が必要

そろそろRails7 alpha2を試そうと思って、bundle update rails した後に、rails app:update したら エラーになりました。

$ rails app:update
rails aborted!
LoadError: cannot load such file -- polyamorous/activerecord_7.0_ruby_2/join_association
/rochefort/rails7/config/application.rb:20:in `<main>'
/rochefort/rails7/Rakefile:4:in `<main>'
/rochefort/rails7/bin/rails:5:in `<top (required)>'
/rochefort/rails7/bin/spring:10:in `require'
/rochefort/rails7/bin/spring:10:in `block in <top (required)>'
<internal:kernel>:90:in `tap'
/rochefort/rails7/bin/spring:7:in `<top (required)>'
bin/rails:2:in `load'
bin/rails:2:in `<main>'
(See full trace by running task with --trace)

どうやら

file名にactiverecordのversionがついている感じで何とも微妙なエラーメッセージですが、 ransack起因のものでした。

Bump the Rails version to 7 by yahonda · Pull Request #1205 · activerecord-hackery/ransack

rails の version間の差異を吸収するために、このような実装になってるかと思います。

対応

すでにrails contributorのyahondaさんが対応PR作成してくれていますが、 Rails自体がalpha版のためリリースはまだです。 そのため、Gemfileに以下を設定して、bundle update ransackすれば良いです。

1
gem "ransack", git: "https://github.com/activerecord-hackery/ransack", ref: "81910c238dd4452bbe90541f13abb6e85b3bbfea"

ご参考

updatedupdated2021-11-072021-11-07
コメントを読み込みますか?