Query strings carry small name/value pairs after the ? in a URL.

Query Parameters

query_parameters.rb
require "uri"

raw_query = 
pairs = URI.decode_www_form(raw_query)
params = pairs.to_h

first_key = pairs.first[0]
first_value = pairs.first[1]
tag_count = pairs.count { |key, _value| key == "tag" }

puts "raw_query=#{raw_query}"
puts "first=#{first_key}:#{first_value}"
puts "sort=#{params.fetch('sort', 'none')}"
puts "tag_count=#{tag_count}"
require "uri"

raw_query = 
pairs = URI.decode_www_form(raw_query)
params = pairs.to_h

first_key = pairs.first[0]
first_value = pairs.first[1]
tag_count = pairs.count { |key, _value| key == "tag" }

puts "raw_query=#{raw_query}"
puts "first=#{first_key}:#{first_value}"
puts "sort=#{params.fetch('sort', 'none')}"
puts "tag_count=#{tag_count}"
require "uri"

raw_query = 
pairs = URI.decode_www_form(raw_query)
params = pairs.to_h

first_key = pairs.first[0]
first_value = pairs.first[1]
tag_count = pairs.count { |key, _value| key == "tag" }

puts "raw_query=#{raw_query}"
puts "first=#{first_key}:#{first_value}"
puts "sort=#{params.fetch('sort', 'none')}"
puts "tag_count=#{tag_count}"
query params `URI.decode_www_form` decodes a query string into pairs that can be turned into a hash.