26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】戻るボタンの実装方法【複数ページ戻ることも可能】

Last updated at Posted at 2019-08-31

こんにちは!
ねこじょーかー(@nekojoker1234)と申します。

前のページに戻るボタン、付けたいと思ったことはありませんか?

「rails 戻るボタン」とかで調べると出てくるのが、以下の処理です。

= link_to '戻る', :back

これは、1ページだけ戻る場合は上記で問題ないのですが、複数ページ戻る場合、ループしてしまう問題があります。

たとえば、以下の操作を見てみましょう。

  1. 投稿一覧を見る
  2. Aさんの投稿の詳細を見る
  3. 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

26
19
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?