How does Rails propose to handle legacy data models moving forward? From what I've seen Rails really only works for new 'greenfield' applications, not ones that have complicated table structures with complex keys etc.
It's actually not Rails which has trouble with composite keys etc. It's the ORM framework that Rails uses by default, ActiveRecord, which has the trouble. You are free to use raw SQL or an alternative ORM tool instead of ActiveRecord if it doesn't quite cut it in your environment.