See the ActiveRecord Tutorial by the RailsEnvy.com guys for an entertaining video introduction / screencast.
Active Record connects business objects and database tables to create a persistable domain model where logic and data is presented in one wrapping. It’s an implementation of the object-relational mapping (ORM) pattern by the same name as described by Martin Fowler:
An object that wraps a row in a database table or view, encapsulates the database access, and adds domain logic on that data.
Active Record’s main contribution to the pattern is to relieve the original of two stunting problems: lack of associations and inheritance. By adding a simple domain language-like set of macros to describe the former and integrating the SingleTableInheritance pattern for the latter, Active Record narrows the gap of functionality between the data-mapper and active record approach.
Besides being a stand-alone ORM package for Ruby, Active Record is also the model part of the web-application framework Rails. Rails and Active Record are both projects conceived by DavidHeinemeierHansson and improved upon by a number of Contributors.
Continue with: Active Record Reference Documentation
No Meta Data
Forget XML configuration files. Active Record is configured on-the-fly without a need for a build phase.
Database Support
MySQL, PostgreSQL (7.4+), and SQLite is supported out of the box. Writing a New database adapter is less than 100 lines of code.
Thread Safe
Use Active Record with native Ruby web-servers that handle requests using threads, such as WEBrick and Cerise.
Fast!
On a basic benchmark looping over 100 objects and extracting a single value, Active Record is only 50% slower than going directly to the metal.
Please provide benchmark. Also +50% is seldom considered fast
Transaction Ready
Active Record uses transactions to ensure that dependent deletes are carried out atomically and you can write your own transaction-safe methods as well.
Easy Associations
Describe relationships between classes using natural-language macros, such as has_many and belongs_to.
Validations Built-in
Put the business object in charge of determining the validity of its attributes.
Custom Value Objects
Use real objects to represent values such as Money and Temperatures.