Я віддаю перевагу httpclient через Net :: HTTP.
client = HTTPClient.new
puts client.get_content('http://www.example.com/index.html')
HTTParty - це хороший вибір, якщо ви створюєте клас, який є клієнтом послуги. Це зручний міксин, який дає 90% від того, що вам потрібно. Подивіться, наскільки короткі клієнти Google та Twitter у прикладах .
І щоб відповісти на ваше друге запитання: ні, я б не ставив цю функціональність в контролер - я б замість цього використовував модель, щоб інкапсулювати деталі (можливо, використовуючи HTTParty) і просто зателефонувавши їй з контролера.