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.