Puisque vous pouvez avoir plusieurs paramètres de requête que vous voulez ajouter et pas seulement un, voici une version qui vous permet d'ajouter autant de paramètres que vous voulez en passant simplement dans un hachage ... Plus un hachage semble être un moyen plus naturel de passer dans params
de toute façon, même si vous ajoutez seulement un paramètre.
require 'uri'
def add_params(url, params = {})
uri = URI(url)
params = Hash[URI.decode_www_form(uri.query || '')].merge(params)
uri.query = URI.encode_www_form(params)
uri.to_s
end
Exemples :
pry(main)> helper.add_params("http://example.com", b: 2)
=> "http://example.com?b=2"
pry(main)> helper.add_params("http://example.com?a=1", b: 2, c: 3)
=> "http://example.com?a=1&b=2&c=3"
pry(main)> helper.add_params("http://www.youtube.com/watch?v=og9B3BEnBHo", wmode: 'opaque')
=> "http://www.youtube.com/watch?v=og9B3BEnBHo&wmode=opaque"