Learning Ruby on Rails

Guide for Ruby on Rails starters
01 June 2017   4032

Reasons to Master Ruby on Rails

Key to success for every coder is constant learning and self-growth. The more technologies developer knows, the more he is in demand. Ruby on Rails (aka RoR) is one of the most powerful ways for quick web developing. RoR coders has a high relevance level and demand in today’s marketplace. Thousands of companies built their products using Ruby on Rails. Developing with Rails is also a great opportunity to use into practice all the skills you’ve learned so far - from basic HTML to object-oriented programming. 

Ruby

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

Ruby on Rails

A framework written in the Ruby programming language

Ruby on Rails has a lot of advantages for a developer, such as:

  • development speed; 
  • good culture and clear standards;
  • interesting technical solutions: testing, caching, localization, validation, security and much more.

For additional info, check our article about pros of RoR.

Generally, Ruby on Rails is not a beginner’s choice. Average age of RoR coder is 25-28 years. Many guys came to Ruby from PHP. To start learning Ruby, you will have to be skilled in web programming and general software engineering. But this is also a plus for a Ruby coder. Every Ruby specialist is always in demand, known as skilled programmer and there is now such term as «bad Ruby coder».

Workspace Preparation

If you've decided to learn Rails, you need to install it on your machine. There are many ways to do this, depending on your platform. If you’re on a Mac or a Linux-based computer, we recommend you to use RVM. It’s a good tool to install Ruby. You can have instructions in this article. If you’re on Windows, you can use RubyInstaller for Windows.

Next, you need to install Rails. You have to install RubyGems on your computer. But if you've used RVM to install Ruby, congratulations, you already have it! 

For comfy work you gonna need to use interactive development environment also known as IDE. There are a lot of different IDE, both free and not. Every programmer chooses an IDE by himself.  Some of them are just extended text editors, some are big applications, that can make cloud calculations and have a lot of valuable built in features, like auto-completion, error and syntax highlighting, Ruby debugger. More info here can be found in our article

Ruby on Rails Courses 

There are hundreds of RoR courses on the web. We've monitored them for you and here is our list.

RubyMonk

RubyMonk interfaceRubyMonk interface

Language: English

Price: free

List of interactive Ruby courses for programmer of any skill level. Has a sorting by skill level and pleasant design. Supports «in-browser» coding, big amount of examples.

CodeSchool

CodeSchool interfaceCodeSchool interface

Language: English

Price: 29$ or 19$ for month subscription; free lessons available

CodeSchool is big online courses base. It has 10 online Ruby courses, 2 of them for free. They are interactive and interesting made. First 3 will fit for a beginner. One of the funniest courses on the web, zombies and foxes included. Month subscription for a website will cost 29$, and 19$ per month if you will buy it for a year ahead. CodeSchool also has courses for other popular programming languages.

RailsCasts

RailsCasts interfaceRailsCasts interface

Language: English

Price: 9$ month subscription; free lessons available

Big base of screencast episodes (over 400), dedicated to Ruby. Some find this type of material very comfy for them. Most of episodes need 9$ per month subscription. Targeted on middle developer, but juniors and seniors will find interesting information too. Also it has a text version of episodes. Produced by Ryan Bates

GoRails

GoRails interfaceGoRails interface

Language: English

Price: 19$ for months subscription, special offers for a team (from 95$ to 475$, depends on number of developers)

This screencast course that was started to teach web development and solve problems behind it. Handy navigation, a lot of information on "tricky" sides of RoR development. 

Thinknetica

Thinknetica landing pageThinknetica landing page

Language: Russian

Price: from 25500 rubles (450$) for «light» course to 59900 (920$) for full course

Long, intensive and expensive course with a lot of features such as: personal mentor, guarantee of job offer, comfortable schedule, certification and other. Big amount of good feedbacks on the web. Full course will take 6 months and «light» for 3 month. After the finish, you will have a true project for your portfolio and solid knowledges. 

CodenameCRUD

CodenameCRUD landing pageCodenameCRUD landing page

Language: Russian

Price: Free

This is a free resource offering a full-fledged training course, allowing to gain knowledge and experience, which will be enough for to work as a web developer. The project is not original, texts are translated from Odin Project (the author of this project has received the consent). Ruby and Rails are only the part of this course, but it is still a good knowledge base for russian speaking Ruby enthusiast.

GoodProgrammer

GoodProgrammer landing pageGoodProgrammer landing page

Language: Russian

Price: from 2400 to 6700 rubles ( 45-120$ ); free version available too

Using Ruby language as example, course will teach the universal principles of programming.The goal of the course is to develop practical skills in full beginner, understanding the principles of programming operation and the essence of the programmer's profession. 

Certification

Ruby\Rails certification might be needed for a beginner to show his skills. A lot of mentioned courses gave a certificate after the end. You can have more info here.

Tutorials

Information database is also needed for a Ruby starter. In this article, we’ve collected useful links and «desk-books» for a Ruby developer.

Which course did you liked the most?

Ruby on Rails is one of the most powerful ways for quick web developing. Thousands of companies built their products using Ruby on Rails. Developing with Rails is also a great opportunity to use into practice all the skills you’ve learned so far - from basic HTML to object-oriented programming. We have collected the best Ruby on Rails cources for every coders of any skill level. Please, share your opinion of the best Ruby on Rails learning course.

DateTime, Timestamp, Time and Date in Rails

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

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.