How to Work with Tables That Don't Have a Numeric PK?

One quick work around is to use Dr Nic's composite primary keys plugin http://compositekeys.rubyforge.org/

Not only does it give you the option of utilizing composite keys, but it also actually allows you to use (singular) string primary keys by way of the set_primary_keys class method. e.g. set_primary_keys :code

Most rails features are supported (finders, associations, and so forth).

One caveat is that this does not cover migrations - though you could probably fudge things by adding PK constraints manually.