What is Ruby Object Mapper (ROM) and why should you be excited about it?
The Active Record pattern is described as
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.
It is tightly coupled to the database schema. In other words, decisions that go into designing entities (objects/classes that hold application independent business logic) of your software project affect the database and vice versa.
Ideally, the database is a layer of abstraction lower than your application. What that means is that the decisions of your peristence layer should not affect design decisions of your business logic and vice versa. As an example, you should be able to think through the design decisions of a relational or a non relational database looking at peristence only and not having to wonder how that would affect the rest of your application. This is definitely not