czy na pewno postgres nasłuchuje na gnieździe? czy na pewno nazwa użytkownika i hasło są prawidłowe?
Byłbym skłonny spróbować czegoś takiego
require 'pg'
puts PG::Connection.ping(:dbname => 'oData',:user => 'am',:password => '')
puts "trying with tcp"
puts PG::Connection.ping(:dbname => 'oData',:user => 'am',:password => '', :port => 5432)