【Ruby on Rails】リダイレクトでパラメータを渡す方法について解説します

こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。

この記事では、 Ruby on Railsリダイレクトでパラメータを渡す方法についてを丁寧に解説していきます。

前提条件:実行環境について

実行環境は以下の通りです。

OS Windows10
Rubyのバージョン 2.6.6
Ruby on Railsのバージョン 6.0.3.5

この記事ではRuby on Railsのプロジェクトは

C:\rails_study\sample

に作成しています。

Ruby on Railsのアプリケーションを新規作成するやり方はこちらの記事をご参考ください。

リダイレクトでパラメータを渡す方法を解説

リダイレクトでパラメータを渡す方法を解説します。
パラメータを渡すにはredirect_toメソッドparamsというオプションでパラメータを設定する必要があります。

渡し方サンプルは以下です。

params内の「sample」がキー、「test」がキーに紐づく値になります。
上記のサンプルだと/detailのURIにアクセスすると、同じコントローラー内にあるindexメソッドへ

http://localhost:3000/【コントローラー名】/index?sample=test

とパラメータを設定してリダイレクトすることができます。
クエリ文字列でURLからパラメータを取得する方法については、こちらの記事をご参考ください。

paramsは「,」で区切れば複数の値を渡すことができます。

では、次の章で実際に使ってみます。

リダイレクトでパラメータを渡す方法を解説するプログラムの概要

リダイレクトでパラメータを渡す方法を解説するプログラムは、

  • コントローラー
  • ビュー
  • config\routes.rb

3つを使います。
コントローラーの新規作成時にアクションとビューを作成できるやり方は、以下の記事をご参考ください。

コントローラーは名前を【hoge_controller】とし、

sample\app\controllers\hoge_controller.rb

に格納しています。
detailメソッドからindexメソッドへパラメータを設定してリダイレクトさせ、リダイレクト先(indexメソッド内)で値を取得してビューに渡します。

ビューは名前を【index.html.erb】とし、

sample\app\views\hoge\index.html.erb

に格納しています。
コントローラー側で受け取ったパラメータをビューで表示させ確認します。

コントローラからビューに値を渡して表示させるやり方は、以下の記事をご参考ください。

コントローラーのサンプルプログラム

ビューのサンプルプログラム

config\routes.rbのサンプルプログラム

実行して確認

コントローラから値を取得して画面に表示することができるのかを実行して確認します。
Ruby on Railsでサーバーを立ち上げるコマンドは

です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。

【http://localhost:3000/hoge/detail】のURLにアクセスすると、指定したパラメータが付与されている【http://localhost:3000/hoge/index】へリダイレクトできていることが確認できました。
Ruby on Railsでリダイレクトでパラメータを渡す方法を解説

まとめ:リダイレクトでパラメータを渡してみよう

以上がRuby on Railsのリダイレクトでパラメータを渡す方法の解説でした!

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

コメント

タイトルとURLをコピーしました