Rails is a platform used to develop web applications written in Ruby. Its declared purpose is to develop apps as easy as possible, following a few guidance lines regarding everything a developer needs to know in order to begin. In other words, you can afford writing less code and get faster and better results, more efficiently than other languages and platforms out there. Ruby assumes that there's always an optimal way to execute and is created to encourage the method. In other cases, it will discourage less favorable alternatives. If you learn the Ruby Way, you would probably discover an incredible efficiency growth. If you persist in keeping your old methods and try to utilize methods learnt some place else, you'd probably experience a less pleasant result.
Rails phylosophy includes a few general principles:
- DRY - Do not repeat yourself - suggesting that rewriting the same code countless times is a bad thing to do;
- COC - Convention Over Configuration - signifies the fact that Rails does presume certain actions and doesn't let you hit the same issues or details every time you are going through the config options
- REST - is the best web application model - it organizez apps based on resources and HTTP interogations, heading to the fastest implementation path.
Rails offers a full and complete package of web app creation, including:
- Action Controller
- Action View
- Active Record
- Action Mailer
- Active Resource
- Active Support
Is the component in charge with the administration of controllers in a web app. The platform Action Controller processes the requests within an app, extracts the parameters needed and distributes them to the respective actions. Services provided by Action Controller includes session administration, template rendering and redirect administration
Provides the administration interface for apps views. It can generate pre-built HTML and XHTML formats and leads the process of template rendering, imbricate or partial, including AJAX support
It is the base of Rails apps models. Offers database independence, base CRUD functionalities, advanced identification capacities, plus models combinations, between themselves or between them and other processes.