It is the way it is.
Well that’s not very helpful at all, is it? In all seriousness, the main
thing you should realize is that a model in Rails looks at an existing
and builds methods to access the columns in your table. You don’t need a
migration / schema to have a model.
Migrations in Rails are there to build the database for you but once
done, nothing in Rails ever looks at them again. They’re more of a
than anything else.
Other ORM libraries, notably DataMapper, take an approach similar to the
you describe in Grails. ActiveRecord, however, prefers minimal
configuration. Also, you might be interested to know that Migrations
not introduced until Rails 1.1.
If you get confused, there’s a wonderful plugin called annotate_models
I use on all my projects. It puts the schema info as comments in your
and fxtures so you have them as a reference as well as in your docs.