Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

uriライブラリ 簡易まとめ

URI.scheme

スキームを文字列で返す。

URI.host

ホストを文字列で返す。

URI.port

ポート番号を文字列で返す。

URI.query

クエリを文字列で返す。

URI.path

パスを文字列で返す。

URI.request_uri

path + '?' + queryを文字列で返す。 query が nil である場合は、自身の path を返す。

実践

Qiitaでrubyを検索した結果画面のurlをURIオブジェクトにパースしてみましょう。

require 'uri'

uri = URI.parse('https://qiita.com/search?q=ruby')
puts uri.schem
#=> https
puts uri.host
#=> qiita.com
puts uri.port
#=> 443
puts uri.path
#=> /search
puts uri.query
#=> q=ruby
puts uri.request_uri
#=> /search?q=ruby

join

引数に渡した文字列(変数)を連結してURIオブジェクトを生成する。

encode_www_form

引数で渡した値からURL-encoded form dataを生成する。
私値は配列やハッシュも可能。
GETでuriにパラメータを渡す時などに利用。

uri = URI.join('https://qiita.com','/search')
puts uri
# => https://qiita.com/search
params = {
name: 'hogehoge',
email: 'hogehoge@hogehoge.com'
}
uri.query = URI.encode_www_form(params)
puts uri
# => https://qiita.com/search?name=hogehoge&email=hogehoge%40hogehoge.com
mk_0409
未経験からエンジニア就職を目指している半フリーターです。 勉強する中で疑問に思ったこと、なるほどと思ったことをまとめております。 有意義なアウトプットの場、同じ疑問を感じた方のためになる場になれば幸いです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away