Mój skrypt musi wysłać requesta razem z parametrami. Próbowałem użyć set_form_data, ale nic z tego. Pewien dobry człowiek zaproponował mi dwa rozwiązania.
Czy to jest najlepsze wyjście? Nie można tego zapisać inaczej? Jak dla mnie, to ten kod jest za długi o co najmniej 10 linijek.
A nie wystarczy URI.parse, ewentualnie ustawienie query-stringa w obiekcie URI? Coś w rodzaju:
require 'net/http'
uri = URI.parse("http://jakis.adres.pl/?query=string&blah=blah")
uri.query #=> "query=string&blah=blah"
Net::HTTP.get uri #=> ...
Możesz spróbować użyć gema httpclient http://dev.ctor.org/doc/httpclient/.
[code=ruby]require “rubygems”
require “httpclient”
client = HTTPClient.new
query = { “bar” => “baz” }
uri = ‘http://localhost:3000/foo’
res = client.get(uri, query)
puts res.content[/code]
Tak z ciekawosci: dlaczego Net::HTTP nie wystarcza ? Bo uzywam go od kilku lat na rozne sposoby i jeszcze mnie nie zawiodl 
@hosiawak
Tu nie chodzi o to, czy wystarcza, czy nie, po prostu zaproponowany kod wydał mi się nieco pokrętny 
W związku z postem Radarka (dzięki za gema), mam dwa pytania:
- Lepiej zastosować gem czy monkey patching? A może po prostu wybrać wygodniejszą dla mnie metodę?
- Gdzie w projekcie RoR umieścić taki monkey patching?
@rav: być może się nie znam, ale gdzie ty tu widzisz monkeypatching?
class Hash
def as_get_args
get_args = sep = ''
each do |k,v|
get_args += sep+URI.encode(k.to_s)+"="+URI.encode(v.to_s)
sep = '&'
end
get_args
end
end