こんにちは!
ねこじょーかー(@nekojoker1234)と申します。
前のページに戻るボタン、付けたいと思ったことはありませんか?
「rails 戻るボタン」とかで調べると出てくるのが、以下の処理です。
= link_to '戻る', :back
これは、1ページだけ戻る場合は上記で問題ないのですが、複数ページ戻る場合、ループしてしまう問題があります。
たとえば、以下の操作を見てみましょう。
- 投稿一覧を見る
- Aさんの投稿の詳細を見る
- Aさんのプロフィールを見る
上記の操作をしたあと、「1. 投稿一覧を見る」に戻りたいとします。
戻るボタンを押すと、「2. Aさんの投稿の詳細を見る」まで戻ることができるのですが、もう一度戻るボタンを押すと、「3. Aさんのプロフィールを見る」に戻ってしまいます。
つまり、= link_to '戻る', :back
というのは、「一つ前に表示していた画面に戻る」という機能でしかありません。
したがって、複数ページ前に戻ろうとしても、2つのページをぐるぐるループしてしまうようになります。
(3→2→3→2→・・・)
ではどうすればいいのかというと、以下のように書きます。
= link_to '戻る', 'javascript:history.back()'
上記の処理を書くことで、複数ページ前に戻ることが可能になります。
このボタンを先ほどの1〜3のページに置いておけば、「3→2→1」のように戻るようになるので、ぜひお試しください!
##まとめ
- 1ページ戻るだけでいいなら
= link_to '戻る', :back
を使う - 複数ページ戻るような画面設計なら
= link_to '戻る', 'javascript:history.back()'
を使う
あわせて読みたい
HTMLもわからない初心者が、独学で「投稿型SNSサービス」を作ったって本当?【193日間の死闘】
運営している PlayFab 専用ブログ
https://playfab-master.com