How To Code A Ruby on Rails Web Application

My Blog

Ruby on Rails is a web application framework.

Rails is the framework, Ruby is the language.

Designed through David Heinemeier Hansson in 2005, it is become renowned inside the Internet startup world for its adoption via some of the main “startups” of our time, which include Stripe, Uber and Groupon.

If you want to discover ways to program in Ruby on Rails, this academic have to come up with a top level view of what to do. I won’t pass into specifics due to the fact I just need to offer you an idea as to the shape of an software. If you observe what I propose, you have to extra absolutely recognize how those packages paintings.

Web Applications

All software program packages work within the same manner –

Data is inputted
Data is processed
Data is outputted
The way the records is inputted and processed is depending on the platform your application runs on. How it’s far outputted depends in your application.
The distinction with net programs is that their logic runs on a server, with the data IO being handed via the Internet (specifically, the HTTP protocol).

The trouble of web apps is that you require the ability to simply accept inbound facts, and return responses. This is handled by way of an internet server application (NGinx or Apache). I’ll provide an explanation for this in a minute.

Software Stack

When you create a chunk of software program, you need to recollect the “stack” on which it runs.

The “stack” is all of the software program required to run your utility. In the world of computer games, as an example, the “stack” may consist of the likes of DirectX or a selected pics driving force.

The foremost hold-lower back for could-be internet software builders is understanding how the “internet” software stack works. Web works further to native applications, except for one awesome difference – stateless.

The “Internet” operates underneath the HTTP protocol. By nature, this is called a “stateless” protocol – each request you send is taken into consideration unbiased to the closing. Unlike stateful protocols (which preserve nation), stateless protocols have to rebuild the software’s kingdom every time.

Whilst this indicates nothing to the majority, the factor is that in case you’re going to expand a web based totally software, you need to apply a framework or generation set which makes the stateless nature of HTTP as incorporated as viable. Most pertinently, you want an authentication device which rebuilds the person’s session on every request (I’ll explain this in a 2nd).

Ruby vs PHP

Ruby (the language) is corresponding to PHP – they’re both procedural and each are used closely on the Internet.

The primary difference between Ruby and PHP is that PHP is accessed at once at the purchaser-side, Ruby wishes a proxy.

Applications along with WordPress are constructed with PHP because it’s free, open source and can be run on any LAMP (Linux Apache MySQL PHP) server (which is essentially all the shared website hosting in existence).

The point with Ruby is that it’s far a LOT more temperamental than PHP – it calls for walking procedures to assist it function and can regularly fail to begin if any problems stand up.


To get commenced, you want three matters:

An IDE (Integrated Development Environment)
A Ruby-Compatible Web Server (Heroku)
Ruby, Rails & GIT Installed On Your System
I’ll give an explanation for the way it works.
An “IDE” is a text editor with the ability to parent the code you input. I presently use Atom (loose) from Github. You can down load it from Atom.Io.

The IDE allows you to write the code. Whilst you’re free to apply a trendy textual content editor (Notepad or Notepad++), it is much better to use a machine together with Atom or maybe Visual Studio, as to advantage the entire capability of the language (linting and many others).

From here, you’ll additionally want to install Ruby, Rails and GIT to your development device. Ruby is the programming language (nothing works unless you have it), Rails is the framework which lets in us to build the internet based totally utility, and GIT is the SCM (Source Code Management) gadget we are able to use to push our code to our server.

For server era, the very best is to use Heroku (Heroku.Com) – a completely controlled device. You can get started free of charge, with upgraded ability, velocity etc delivered at more monthly fee. If you are cozy setting up your personal server, you can desire to apply the likes of DigitalOcean.

It should be noted that shared web hosting does now not paintings for Ruby based totally packages. You not simplest need GIT get admission to (generally through SSH) but the server is also required to run Ruby as a jogging system. This cannot be accomplished with shared website hosting (alas).

Installing Ruby & Rails

The first step to programming a RoR software is to install Ruby & Rails in your device.

Whilst there are unique methods to do that, relying on which platform you are walking (Windows/Linux and so forth), there is a core set of steps to observe:

Install Ruby
This is accomplished both from supply, or by means of the usage of a pre-compiled model. If you are the use of Windows, you’ll need to put in each element one by one.
Install RubyGems
This is the base set of protocols which allows you to down load all the greater libraries for Ruby – the “gem stones”. These gem stones are used to offer swathes of functionality for Ruby web improvement. Part of what made Ruby extraordinarily appealing in the first location turned into this enormous set of extensible capability. Rails is a gem, for instance.
Install Build Tools
In Unix structures, you’ll want to put in the “construct important” library, Windows will require installing the MSYS2 toolset. Both of those provide the device with the necessary gear to compile the myriad of self-constructing gems (consisting of MYSQL2 and RMagick).
Install Rails
After this, you could run “gem install rails” to get rails installed. This will area all Rails’ binaries onto your device, giving you the capacity to expand with the framework.
Install an IDE
An IDE (Integrated Development Environment) is the software used to input code into the system. Whilst they’re simply glorified textual content editors, they do provide you with such capability as linting, code highlighting and so forth. We use Atom however you can additionally use Sublime Text or a swathe of thers. If you feel confident, you can simply want to use Notepad.
Install GIT
GIT is an SCM (supply code control) gadget. It gives you the potential to create a “repository” and push it to an outside web server. This technology / method is essentially like FTP on steroids, and is the primary way that Ruby code is “driven” to servers. You need to down load GIT one at a time to your gadget (from git-scm.Com)
Start Coding
With the above installed, you just need to start coding. To do this, you want to browse to a brand new folder, load up CMD and kind “rails new [[app name]]”. After urgent “Enter”, the standard software documents might be located onto the difficult power, permitting you to edit them and take a look at them on a neighborhood server. This is the begin of your utility.
Getting Started

Without getting into specifics, the important thing thing to consider with Rails programs is that they’re “completed for you”.

Rails has a convention referred to as “conference over configuration”. This means that the Rails framework has been designed to offer you as whole manner as viable to build and installation a web primarily based software.

The framework is called an “MVC” model framework (version, view, controller) – this means that that every time you send a request to the software, it uses a aggregate of a “version”, “view” and “controller” to construct a response.

As such, whilst you create the new Rails software on your gadget, you may quickly see a massive wide variety of folders. The most effective ones which be counted (in the starting) are the ones located within the /app directory.

In here, you’ll see the likes of “assets”, “views”, “models” and “controllers” folders. If this means not anything, don’t worry. I’ll provide an explanation for the basis of how it all works here.

MVC has been around for many years.

It works in the equal manner for every implementation:

When an utility receives a request, it routes the request to a controller
The controller then pulls statistics from the model (which talks to the database) and puts it right into a view
The view is returned to the person
In the case of Rails, the “view” is an HTML record populated with the statistics from the model. For example, you may have the subsequent primary setup for a easy “howdy global” utility:
root “application#display”


class ApplicationController < ActionController::Base

def display

@call = User.First




Hello <%= @name.First %>


elegance User < ActiveRecord::Base

# connects to the DB

# has schema of identity closing updated_at


The above will assist you to send a request to “http://127.Zero.Zero.1/” and need to get hold of the first call of the primary database user.

Pushing To A Web Server

The very last step to getting installation is to push to a stay server.

Whilst you may use a VPS of your own (it has to be a VPS because shared hosting does now not have SSH get right of entry to, nor helps Ruby programs), the handiest and only way to get started is to just use Heroku.

We still use Heroku for staging server functions (whilst you put up an internet software, it’s suggest you operate a “staging” server to test the software, and a “manufacturing” server to host the utility publicly). I’ve made many errors before by using cutting out the improvement server.

To push to a Heroku server (free), I’ll briefly explain the method:

Open a Heroku account (I think you can want to offer card info – don’t worry, they do not charge for their free tier. It’s to validate your identification so that you don’t make illegal websites)
Create an “app” of their dashboard
Click onto the app – you will be given a “git” URL
Copy this URL and head lower back on your Rails utility
In CMD, kind “git upload faraway heroku [[heroku link]]” (update [[heroku link]] with the git URL Heroku gave you)
Press input
Now, package deal up your utility (git add.) (git dedicate -am “First Push”)
After inputting these strains, kind “git push heroku grasp” and press Enter
You’ll must input your credentials – try this and the repo have to be despatched to Heroku
After this, Heroku will build the application and “set up” it on its very own namespace ([[app-name] herokuapp com)
Browsing to this namespace will show you the app
After doing this, it’s as much as you to then manage your set up protocol on your personal way and so forth. I might strongly endorse the usage of Heroku for staging environment servers; you’ll likely need to apply such services as DigitalOcean for production.
Further Developments

Of route, internet utility improvement is transferring forward constantly.

Due to the extremely low barriers to access (loose) and the breadth of resources available, many human beings are drawn to Ruby on Rails improvement.

However, do not permit it fool you. The scope for incomes respectable cash from this profession is entirely depending on two elements – your skillset/potential, and your get entry to to a market.

Unfortunately for plenty could-be builders, their epic goals of creating the following Groupon / Stripe and many others are shattered after they input the “real world” — where customers don’t care approximately the code you operate and just want the cheapest answer that slightly works.

The key for any Rails developer is to maintain investing into their programming skillset, despite different languages. Ruby spoils many builders because of its simplicity. Moving better up the programming price chain (into the geographical regions of C / C++ and many others) open up a lot greater stable positions.

It is therefore my recommendation which you always push yourself to take a look at new UI ideas, new approaches of doing matters and typically improving your skillset as required. Attend hackathons, meet other builders and generally enhance your publicity to the computing enterprise. This have to present opportunities for you as you expand.

for more information please have a look at

Leave a Reply

Your email address will not be published. Required fields are marked *