Post

redirect_backとredirect_back_or_toについて

redirect_back fallback_location: root_pathは初めて見た使い方で、redirect_back_or_toとの違いを調べていた。

Rails APIではredirect_backredirect_back_or_toのエイリアスで、後者よりやや非推奨と書いてた。

理由はfallback_locationの引数は redirect_backでキーワード引数の形式で、redirect_back_or_toでは一番目の位置引数になっているとのこと。

Soft deprecated alias for redirect_back_or_to where the fallback_location location is supplied as a keyword argument instead of the first positional argument.

こう見ると、ここではredirect_back_or_to root_pathを使った方が良いではないかと思い、やって見たら、redirect_backと同じ挙動はしなかった。

おかしいなと思っていたところ、redirect_back_or_toはsorceryにより提供された便利なメソッドだとの話を思い出した。

だとしたら、Railsでのredirect_back_or_toは新しくリリースしたメソッド?

Railsドキュメントでは5.0から7.0まで適用と書いたので、新しいメソッドではないみたいだけど…

ちょっと迷っているところ、こんなissueを見つけた。

Should Sorcery rename redirect_back_or_to? #296 Rails 7 released a new method called redirect_back_or_to added by DHH as a replacement for the now soft-deprecated redirect_back: rails/rails#40671. That may conflict with the method by the same name defined by Sorcery. Should it be renamed? I’m opening an issue instead of a PR because I guess it’s not a trivial decision to make.

なるほど!redirect_back_or_toはRails 7でリリースしたメソッドで、元々Sorceryが提供しているメソッド名と被ったため、Sorceryのメソッド名の変更が必要になったと。

(Railsドキュメントも完全に信用してはいけないね。。)

だから今回課題のアプリでは、redirect_back_or_toはまだ使えない、従来のredirect_backを使うべきということで疑問が解消した。

ちなみに、先日Sorceryの開発者がこの問題を着手し始めてるそうで、Sorceryで使うredirect_back_or_toメソッド名が変更されるかも。


参照 Should Sorcery rename redirect_back_or_to? #296 Rails API

This post is licensed under CC BY 4.0 by the author.