ActiveRecord's best feature in my opinion was that it let programmers specify behavior for rows, allowing the rows themselves to do things.
This made for much nicer, more object-oriented code, as opposed to the procedural code that was previously common.