2013-03-29 16:16:12 -04:00
|
|
|
== Welcome to \Rails
|
|
|
|
|
|
|
|
\Rails is a web-application framework that includes everything needed to create
|
2014-06-14 14:04:08 -04:00
|
|
|
database-backed web applications according to the {Model-View-Controller (MVC)}[http://en.wikipedia.org/wiki/Model-view-controller] pattern.
|
2013-03-29 16:16:12 -04:00
|
|
|
|
|
|
|
Understanding the MVC pattern is key to understanding \Rails. MVC divides your application
|
|
|
|
into three layers, each with a specific responsibility.
|
|
|
|
|
|
|
|
The View layer is composed of "templates" that are responsible for providing
|
|
|
|
appropriate representations of your application's resources. Templates
|
|
|
|
can come in a variety of formats, but most view templates are \HTML with embedded Ruby
|
|
|
|
code (.erb files).
|
|
|
|
|
|
|
|
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,
|
|
|
|
database-backed model classes are derived from ActiveRecord::Base. Active Record allows
|
|
|
|
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
|
|
|
|
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
|
2013-07-06 16:24:06 -04:00
|
|
|
{README}[link:files/activerecord/README_rdoc.html].
|
2013-03-29 16:16:12 -04:00
|
|
|
|
|
|
|
The Controller layer is responsible for handling incoming HTTP requests and providing a
|
|
|
|
suitable response. Usually this means returning \HTML, but \Rails controllers can also
|
|
|
|
generate XML, JSON, PDFs, mobile-specific views, and more. Controllers manipulate models
|
|
|
|
and render view templates in order to generate the appropriate HTTP response.
|
|
|
|
|
|
|
|
In \Rails, the Controller and View layers are handled together by Action Pack.
|
|
|
|
These two layers are bundled in a single package due to their heavy interdependence.
|
|
|
|
This is unlike the relationship between Active Record and Action Pack, which are
|
|
|
|
independent. Each of these packages can be used independently outside of \Rails. You
|
2013-07-06 16:24:06 -04:00
|
|
|
can read more about Action Pack in its {README}[link:files/actionpack/README_rdoc.html].
|
2013-03-29 16:16:12 -04:00
|
|
|
|
|
|
|
== Getting Started
|
|
|
|
|
|
|
|
1. Install \Rails at the command prompt if you haven't yet:
|
|
|
|
|
|
|
|
gem install rails
|
|
|
|
|
|
|
|
2. At the command prompt, create a new \Rails application:
|
|
|
|
|
|
|
|
rails new myapp
|
|
|
|
|
|
|
|
where "myapp" is the application name.
|
|
|
|
|
|
|
|
3. Change directory to +myapp+ and start the web server:
|
|
|
|
|
|
|
|
cd myapp; rails server
|
|
|
|
|
|
|
|
Run with <tt>--help</tt> or <tt>-h</tt> for options.
|
|
|
|
|
|
|
|
4. Go to http://localhost:3000 and you'll see:
|
|
|
|
|
|
|
|
"Welcome aboard: You're riding Ruby on Rails!"
|
|
|
|
|
|
|
|
5. Follow the guidelines to start developing your application. You may find the following resources handy:
|
|
|
|
|
2013-07-17 04:34:11 -04:00
|
|
|
* The \README file created within your application.
|
2013-03-29 16:16:12 -04: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].
|
|
|
|
|
|
|
|
== Contributing
|
|
|
|
|
|
|
|
We encourage you to contribute to Ruby on \Rails! Please check out the {Contributing to Rails
|
|
|
|
guide}[http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html] for guidelines about how
|
|
|
|
to proceed. {Join us}[http://contributors.rubyonrails.org]!
|
|
|
|
|
|
|
|
|
|
|
|
== License
|
|
|
|
|
|
|
|
Ruby on \Rails is released under the {MIT License}[http://www.opensource.org/licenses/MIT].
|