2011-05-01 07:15:15 -04:00
== Welcome to Rails
2010-07-21 06:37:05 -04:00
2011-05-01 07:15:15 -04:00
Rails is a web-application framework that includes everything needed to create
2011-06-08 13:17:25 -04:00
database-backed web applications according to the {Model-View-Controller (MVC)}[http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller] pattern.
2011-05-23 22:09:05 -04:00
2011-07-27 06:30:35 -04:00
Understanding the MVC pattern is key to understanding Rails. MVC divides your application
2011-05-23 22:09:05 -04:00
into three layers, each with a specific responsibility.
2012-10-26 14:44:21 -04:00
The View layer is composed of "templates" that are responsible for providing
2011-07-27 06:30:35 -04:00
appropriate representations of your application's resources. Templates
2011-08-27 16:55:54 -04:00
can come in a variety of formats, but most view templates are \HTML with embedded Ruby
2012-10-26 14:44:21 -04:00
code (.erb files).
2011-05-23 22:09:05 -04:00
2012-10-26 14:44:21 -04:00
The Model layer represents your domain model (such as Account, Product, Person, Post)
and encapsulates the business logic that is specific to your application. In Rails,
2011-08-27 16:55:54 -04:00
database-backed model classes are derived from ActiveRecord::Base. Active Record allows
2012-10-26 14:44:21 -04:00
you to present the data from database rows as objects and embellish these data objects
with business logic methods. Although most Rails models are backed by a database, models
2011-05-23 22:09:05 -04:00
can also be ordinary Ruby classes, or Ruby classes that implement a set of interfaces as
provided by the ActiveModel module. You can read more about Active Record in its
2011-08-13 12:44:18 -04:00
{README}[link:/rails/rails/blob/master/activerecord/README.rdoc].
2010-07-21 06:37:05 -04:00
2012-10-26 14:44:21 -04:00
The Controller layer is responsible for handling incoming HTTP requests and providing a
2011-08-27 16:55:54 -04:00
suitable response. Usually this means returning \HTML, but Rails controllers can also
2012-10-26 14:44:21 -04:00
generate XML, JSON, PDFs, mobile-specific views, and more. Controllers manipulate models
2011-05-25 08:31:45 -04:00
and render view templates in order to generate the appropriate HTTP response.
2010-07-21 06:37:05 -04:00
2011-05-23 22:09:05 -04:00
In Rails, the Controller and View layers are handled together by Action Pack.
2012-10-26 14:44:21 -04:00
These two layers are bundled in a single package due to their heavy interdependence.
2013-01-21 11:11:39 -05:00
This is unlike the relationship between Active Record and Action Pack, which are
2012-10-26 14:44:21 -04:00
independent. Each of these packages can be used independently outside of Rails. You
2011-08-13 12:44:18 -04:00
can read more about Action Pack in its {README}[link:/rails/rails/blob/master/actionpack/README.rdoc].
2010-07-21 06:37:05 -04:00
== Getting Started
2011-05-01 07:15:15 -04:00
1. Install Rails at the command prompt if you haven't yet:
2010-07-31 05:51:17 -04:00
2010-07-31 06:06:00 -04:00
gem install rails
2010-07-21 06:37:05 -04:00
2011-05-01 07:15:15 -04:00
2. At the command prompt, create a new Rails application:
2010-07-21 06:37:05 -04:00
2010-08-14 01:13:00 -04:00
rails new myapp
2010-07-31 05:51:17 -04:00
where "myapp" is the application name.
3. Change directory to +myapp+ and start the web server:
cd myapp; rails server
2012-03-19 08:23:27 -04:00
Run with <tt>--help</tt> or <tt>-h</tt> for options.
2010-07-21 06:37:05 -04:00
2011-07-30 03:23:21 -04:00
4. Go to http://localhost:3000 and you'll see:
2010-07-31 05:51:17 -04:00
2010-07-31 06:06:00 -04:00
"Welcome aboard: You're riding Ruby on Rails!"
2010-07-21 06:37:05 -04:00
2011-04-11 15:57:52 -04:00
5. Follow the guidelines to start developing your application. You may find the following resources handy:
2010-07-21 06:37:05 -04:00
2010-07-31 05:51:17 -04:00
* The README file created within your application.
2012-12-15 10:38:52 -05:00
* {Getting Started with Rails}[http://guides.rubyonrails.org/getting_started.html].
* {Ruby on Rails Tutorial}[http://ruby.railstutorial.org/ruby-on-rails-tutorial-book].
* {Ruby on Rails Guides}[http://guides.rubyonrails.org].
* {The API Documentation}[http://api.rubyonrails.org].
2010-07-21 06:37:05 -04:00
2011-09-07 15:57:24 -04:00
== Contributing
2010-07-21 06:37:05 -04:00
2011-05-01 07:15:15 -04:00
We encourage you to contribute to Ruby on Rails! Please check out the {Contributing to Rails
2011-05-23 13:13:22 -04:00
guide}[http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html] for guidelines about how
2010-07-31 05:51:17 -04:00
to proceed. {Join us}[http://contributors.rubyonrails.org]!
2010-07-21 06:37:05 -04:00
2012-10-26 14:44:21 -04:00
== Code Status
2011-12-08 09:39:08 -05:00
2012-10-26 14:44:21 -04:00
* {<img src="https://secure.travis-ci.org/rails/rails.png"/>}[http://travis-ci.org/rails/rails]
* {<img src="https://gemnasium.com/rails/rails.png?travis"/>}[https://gemnasium.com/rails/rails]
2011-09-07 15:57:24 -04:00
2010-07-21 06:37:05 -04:00
== License
2012-10-26 14:44:21 -04:00
Ruby on Rails is released under the {MIT License}[http://www.opensource.org/licenses/MIT].