Рельсы 3 следуют за ActiveModel, у которой есть определенный контракт, который должен следовать ActionPack (и ActionView).
См. этот пост , в котором Йеуда Кац подробно объясняет это в разделе ActiveModel. Также обратитесь к ActiveModel ChangeLog , который имеет ссылку на метод.
Проще говоря, ваша модель должна реализовывать определенные методы, чтобы играть хорошо с остальными приложениями rails 3. И этот метод является одним из них.
ActiveRecord 3 просто следует этому контракту. Если вы выбрасываете его и используете свой собственный ORM, такой как Mongoid, если фреймворк не делает этого (например, mongoid), вы должны сделать это явно. couch_potato, который является аналогичной оболочкой для couchdb, делает то же самое.