こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 Ruby on Railsでクエリ文字列でURLからパラメータを取得する方法についてを丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Ruby on Railsのバージョン | 6.0.3.5 |
クエリ文字列とは
クエリ文字列とは
http://localhost:3000/sample?test=123
というように値を渡す方法です。
上記の例だと、「test」がキーで「123」が値です。
Ruby on Ralsの場合、クエリ文字列からパラメータを取得する場合、コントローラーに処理を記載する必要があります。
コントローラーでクエリ文字列を取得するやり方を解説
コントローラーでクエリ文字列を取得するやり方を解説します。
取得するにはparamsメソッドを使います。
以下のように使って、クエリ文字列から値を取得します。
http://localhost:3000/sample?test=123
でアクセスした場合、resultには「123」という値が入ります。
注意点としまして、値を取得すると型は文字列となります。
では、次の章で実際に使ってみます。
クエリ文字列でURLからパラメータを取得するやり方を解説するプログラムの概要
クエリ文字列でURLからパラメータを取得するやり方を解説するプログラムは、
- コントローラー
- ビュー
- config\routes.rb
3つを使います。
- コントローラーの新規作成時にアクションとビューを作成できるやり方
- コントローラーからビューに値を渡すやり方
は、以下の記事をご参考ください。
【Ruby on Rails】コントローラーを新規作成するときアクションとビューを同時に作成するやり方を解説します
コントローラーからビューに値を渡すやり方
【Ruby on Rails】コントローラからビューに値を渡す方法について解説します
コントローラーでクエリ文字列取得し加工して、ビューで表示させます。
コントローラーのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class HogeController < ApplicationController def index if params[:name] != nil then @greeting = 'こんにちは、' + params[:name] + 'さん' else @greeting = '名前がありません' end if params[:school] != nil then @school = '通っている学校は' + params[:school] else @school = '学校に通っていません' end end end |
ビューのサンプルプログラム
1 2 3 4 5 6 7 8 |
<h1>クエリパラメータから取得</h1> <p> <%= @greeting %> </p> <p> <%= @school %> </p> |
config\routes.rbのサンプルプログラム
1 2 3 |
Rails.application.routes.draw do get 'hoge/index' end |
実行して確認
クエリ文字列の値を取得して画面に表示することができるのかを実行して確認します。
Ruby on Railsでサーバーを立ち上げるコマンドは
1 |
rails server |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
今回、
- name:tanaka
- school:Ruby
というクエリ文字列を与えます。
【http://localhost:3000/hoge/index?name=tanaka&school=Ruby】のURLにアクセスすれば、値を取得できていることが確認できます!
まとめ:クエリ文字列でURLからパラメータを取得してみよう
以上がRuby on Railsでクエリ文字列でURLからパラメータを取得するやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント