This is an interesting problem. The error you're getting:
PGError:
could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
... indicates that libpq, as used by the Pg gem in Ruby, cannot open the unix socket in /var/pgsql_socket/.s.PGSQL.5432 because of a file system permissions issue. Most likely your user does not have sufficient permissions on /var/pgsql_socket/. If Mac OS X allows sockets themselves to have permissions it could be permissions on /var/pgsql_socket/.s.PGSQL.5432 its self; I use Linux where socket files can't have permissions and don't know if OS X is different.
Try:
ls -ld /var/pgsql_socket/.s.PGSQL.5432
ls -ld /var/pgsql_socket
ls -ld /var
You can usually work around Mac issues with unix sockets and Pg by using a TCP/IP connection. Just specify host as localhost in your database yml; this will cause a TCP/IP network connection to be made rather than a unix socket connection.
It's also possible you're using a libpq that doesn't match the PostgreSQL server you're running. This is common on OS X because Apple installed a customised older version of PostgreSQL by default on some system versions. If that's the case then there's tons of information about the issue on Stack Overflow (search for the tags 'osx', 'rails', 'postgresql') so I won't repeat it here. Using TCP/IP is a workaround, as is specifying host as the unix_socket_path of the running PostgreSQL server.
It's possible that'll fail with a connection refused if PostgreSQL is not in fact running.