The clearest example was in a StackOverflow post
require 'uri' def add_param(url, param_name, param_value) uri = URI(url) params = URI.decode_www_form(uri.query || "") << [param_name, param_value] uri.query = URI.encode_www_form(params) uri.to_s end
You can pass a map of params key & values and get expected URL.
Another example
# prepare params. params = { 'id' => '12' } path = 'http://localhost/' uri = URI(path) uri.query = URI.encode_www_form(params)
Output
http://localhost?id=12