Rails, Oracle and Legacy Schemas

If your app is indeed read only, and you *can* create views, then
that's your best bet. Create a view for each table that fits the Rails
conventions. That way, your Rails application will be just like any
other.

I don't know much about Oracle, but if you could create the views in a
different namespace (schema, etc), then even better, because you get
to name the views following the Rails conventions for Class <--> table
names.

Non-sequential ids should be ok. I believe that all ActiveRecord
assumes is the existance of a column named 'id' on each table, with
unique integer values. Who knows, maybe they don't even need to be
integers.

As far as updating the views with triggers: again, I don't know about
Oracle, but in MySQL and PostgreSQL it is possible to create views
that basically just re-write SQL on the fly. No need to store
redundant data. And since each one of your views will basically be
just:

CREATE VIEW widgets AS SELECT foo_r as foo, bar_s as bar,
some_primary_key as id from oddly_named_table

Then you shouldn't have much performance problems. Those views are one
to one with the tables.