- Rails Arhitecture
- What is Active Record?
- The Active Record Pattern
- The Object Relational Mapping (ORM)
Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern. and in this series we are going to speak about Model layer.
Active Record is a ruby's gem. and it is the M in MVC - the Model - which represents business data and logic. It is an implementation of the Active Record Pattern which itself is a description of an Object Relational Mapping (ORM) system.
In the Active Record Pattern every record in the database is represented by an object, this object will serve us with:
- Wraping a row in database table.
- Encapsulating the database access.
- Attributes: Adding table's fields as object's attributes.
- Behaviors: Adding domain logic (methods) on that data.
So the objects will carry both persistent data and behavior which operates on that data. And each Active Record object has CRUD (Create, Read, Update, and Delete) methods for database access. This strategy allows simple designs and straight forward mappings between database tables and application objects.
- Each table in a database is generally represented by a class that extends Active Record base class. By extending Active Record base classes, model objects inherit a lot of functionalities.
A technique that connects the rich objects of an application to tables in a relational database management system. so ORM lets you query and manipulate data using Object-Oriented programming.
- Represent models and their data.
- Represent associations between these models.
- Represent inheritance hierarchies through related models.
- Validate models before they get persisted to the database.
- Perform database operations in an object-oriented fashion.