Ruby on Rails Tutorial Michael Hartl

Review to one of the most popular Ruby on Rails tutorial
22 June

A dynamic, open source programming language with a focus on simplicity and productivity.

Ruby on Rails

Ruby on Rails (RoR) - a framework written in the Ruby programming language.

When you will start to learn RoR, one of the first book that will be recommended to you is a Ruby on Rails Tutorial by Michael Hartl. This is one of the most popular newbie’s Ruby guide. At the moment, it has 6 editions and translated to many languages. It consists of 14 chapters and 744 pages. Thru these pages, Michael will teach you how to develop custom web applications, using the popular Ruby on Rails framework. It will also focus on the general principles of web development.

Ruby on Rails Tutorial by Michael Hartl
Ruby on Rails Tutorial by Michael Hartl


Michael Hartl is former Y Combinator alumni, he has a Ph.D. degree in theoretical physics and he was teaching at Caltech. His book guides you through building a Twitter clone in Rails. This is the only Rails book that does test-driven development the whole time. This approach is highly recommended by the experts.

Michael Hartl
Michael Hartl

By including Git, GitHub, and Heroku in the demo examples, the author really gives you a feel for what it’s like to do a real-life project. The tutorial code examples are not isolated.

Book targeting

The book is targeted to a Rails newcomer, not a pro web developer, but general programming skills are needed. Author assume that you are a beginner, so, he will introduce whole Rails ecosystem to you. So, some time will be spent to install version control system called Git and text editors for coding.

What's inside

Inside Ruby on Rails Tutorial
Inside Ruby on Rails Tutorial

Building a Twitter clone by this book will be in a “hard way”, without a gem for user authentication. So, you will be involved in building different models (user, micropost and session), creating partials, passing information between different classes and handling errors.

A micro-blogging app is used to slowly, step-by-step walk through the different Rails features. The tutorial also explains some of the “magic” that goes on under the covers that Rails provides for you.  

Whole book is like a perfectly written program, modular, without any bugs or “empty code”. Author specify the exact versions of every gem, Rails and databases that are used. The book has zero errors, so, every time you will have a bug, it is an issue on your end.

True coder's habits

Usage of GitHub, Heroku, branching makes you feel like you are working on a real-life project, being a “real coder”. Number of gems, used in a test project is not very big, only the most common were used. Most of the things are made by hands.

Book is focused on testing. It starts from RSpec unit tests, then integration tests. TDD approach is followed for a long time where the tests come before the code, a practice that is commonly used by the coders. It will help you to create a good coder habits like running tests before and after merging a branch and refactor your code to reduce duplicates and increase application’s stability.  

Here is a good quote from the book:

If you ask five Rails developers how to test any given piece of code, you’ll get about fifteen different answers—but they’ll all agree that you should definitely be writing tests.

Michael Hartl
Ruby on Rails Tutorial

Also, Tutorial teaches you how to use Terminal properly. You will learn how to set up a sublime text shortcut, how to navigate file structures, create files and other shortcuts that will help you. Terminal will be your program associated with programming and technical expertise.


Ruby on Rails tutorial is a long course and it needs assiduity and diligence. But you can learn a lot from it.

It covers everything someone new to developing Ruby on Rails applications could need. It’s a good fit for people new to web development and new to Rails.

Ready to master Rails? Get this book. 

DateTime, Timestamp, Time and Date in Rails

Learn about key differenece between DateTime, Timestamp, Time and Date in Rails
31 October

The difference between different date/time formats in ActiveRecord have little to do with Rails and everything to do with whatever database you're using.

Using MySQL as an example (if for no other reason because it's most popular), you have DATEDATETIMETIME and TIMESTAMP column data types; just as you have CHARVARCHARFLOATand INTEGER.

So, main differences: DATE only stores a date, TIME only stores a time of day, while DATETIME stores both.

The difference between DATETIME and TIMESTAMP is a bit more subtle: DATETIME is formatted as YYYY-MM-DD HH:MM:SS. Valid ranges go from the year 1000 to the year 9999 and everything in between. While TIMESTAMP looks similar when you fetch it from the database, it's really a just a front for a unix timestamp. Its valid range goes from 1970 to 2038. The difference here, aside from the various built-in functions within the database engine, is storage space. Because DATETIMEstores every digit in the year, month day, hour, minute and second, it uses up a total of 8 bytes. As TIMESTAMP only stores the number of seconds since 1970-01-01, it uses 4 bytes.

You can read more about the differences between time formats in MySQL here.

In the end, it comes down to what you need your date/time column to do. Do you need to store dates and times before 1970 or after 2038? Use DATETIME. Do you need to worry about database size and you're within that timerange? Use TIMESTAMP. Do you only need to store a date? Use DATE. Do you only need to store a time? Use TIME.

Having said all of this, Rails actually makes some of these decisions for you. Both :timestamp and :datetime will default to DATETIME, while :date and :time corresponds to DATE and TIME, respectively.