Ruby / Rails

「redirect_to :back」でエラーが出て直前のページに戻れない時の対処法

2019年9月1日

こんにちは、Nanayakuです。

今回は、railsでcontroller内で処理をした後に、直前のページにレダイレクトする方法を紹介します。

目次

エラーの原因・対処方法

「redirect_to :back」で直前のページにリダイレクト出来ると言う記事が多くありますが、それはRails4以前のバージョンでしか使用出来ません

Rails5以降のバージョンでは、下記のように書きます。

redirect_back(fallback_location: root_path)

と書けばエラーが出ません。

実際の画面とコード

 

アラートの表示方法

直前のページにリダイレクトした時にアラートを表示する場合、「redirect_to :back」の時と同じように書いても表示されません

redirect_to root_path, success: '登録に成功しました'

アラートを表示するには「flash[]」を使用します。

flash[:success] = '’いいね’しました'
redirect_back(fallback_location: root_path)

実際の画面とコード

 

まとめ

Railsのバージョンが5以降で、直前のページにリダイレクトする場合は、redirect_toではなくredirect_backを使用する。

redirect_back(fallback_location: root_path)

 

アラートを表示したい場合は、上記の前にflash[]を書く。

flash[:alert] = '表示したい文字'

 

flash[:alert] = '表示したい文字'

redirect_back(fallback_location: root_path)

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

今回作ったアプリのコードをGitHubにあげているので、よかったらご覧ください。

https://github.com/sabakan789/Paralink

-Ruby / Rails
-

© 2024 Nanayaku blog Powered by AFFINGER5