Data structures are represented by a hierarchy of classes. Data is mostly stored in relational database tables. There is an essential mismatch between your program’s object view and database’s relational data view. To remove this mismatch, many attempts have been tried. One way to resolve this mismatch was through the use of Object-relational-mapping (ORM) tools. ORM is the mapping of relational database tables to object-oriented classes.
A perfect ORM hides the details of a database’s relational data behind the object hierarchy. In Rails, ORM is implemented by Active Record which is one of the most important components of the Rails library.
An ORM provides a mapping layer between how a database handles its data and how an object-oriented application handles its data. It maps database tables to classes, database table rows to objects, and database tables columns to object attributes. Active Record mainly carries out the mapping process for you. While using Active Record, you have to no longer deal with database constructs like tables, rows or columns. Your application only deals with classes, attributes and objects.
Active Record is based on a design pattern created by Martin Fowler. From this design pattern only, the Active Record got its name. Its code works very well even with less number of lines. It is quite easy to use. Active Record Rails application does not need any configuration at all, if proper naming schemes is followed in your database and classes.
There is one more feature of Active Record that makes your work easy, the implementation of a domain-specific-language (DSL). A DSL is a programming language intended to use in a specific problem domain. It allows you to use dynamically generated methods, like to retrieve a record, method find_by_first_name is used.
Active Record Basics
Some of the basics of Active Record are classes, objects and naming conventions.
- Active Record Classes and Objects
- Active Record naming conventions
Class and Database
Database table should be named in the plural form and in lowercase of your model classes. For example, if a model class name is Student, then corresponding table name will be students. With the help of this convention, Rails will automatically find the corresponding table to your model class without any configuration code. It even supports plural nouns such as ‘people’ as the plural of ‘person’.
Rails provides a facility where you can add plurals for a model. To define your own pluralization, add code to the config/environment.rb using Inflector.
In some case, if you don’t want to name your database in the plural form, Rails can be configured with singular-named database tables by adding following line to the config/environment.rb :
ActiveRecord::Base.pluralize_table_names = false
Leave a Reply