aboutsummaryrefslogtreecommitdiffstats
path: root/README.rdoc
diff options
context:
space:
mode:
authorJeff Cohen <jeff@purpleworkshops.com>2011-05-23 21:09:05 -0500
committerJeff Cohen <jeff@purpleworkshops.com>2011-05-23 21:09:05 -0500
commit3540579a0bd5e66047d585f77233917bd6874562 (patch)
tree29fb549eb620c8766dc9d2d483ab5f8905aeeb6a /README.rdoc
parentdd6c3676af3fa6019c53a59f62c4fd14966be728 (diff)
downloadrails-3540579a0bd5e66047d585f77233917bd6874562.tar.gz
rails-3540579a0bd5e66047d585f77233917bd6874562.tar.bz2
rails-3540579a0bd5e66047d585f77233917bd6874562.zip
Update the MVC explanation in the main README.rdoc file
Diffstat (limited to 'README.rdoc')
-rw-r--r--README.rdoc47
1 files changed, 26 insertions, 21 deletions
diff --git a/README.rdoc b/README.rdoc
index c5499ae8ef..b562a20a6f 100644
--- a/README.rdoc
+++ b/README.rdoc
@@ -1,30 +1,35 @@
== Welcome to Rails
Rails is a web-application framework that includes everything needed to create
-database-backed web applications according to the Model-View-Control pattern.
-
-This pattern splits the view (also called the presentation) into "dumb"
-templates that are primarily responsible for inserting pre-built data in between
-HTML tags. The model contains the "smart" domain objects (such as Account,
-Product, Person, Post) that holds all the business logic and knows how to
-persist themselves to a database. The controller handles the incoming requests
-(such as Save New Account, Update Product, Show Post) by manipulating the model
-and directing data to the view.
-
-In Rails, the model is handled by what's called an object-relational mapping
-layer entitled Active Record. This layer allows you to present the data from
-database rows as objects and embellish these data objects with business logic
-methods. You can read more about Active Record in its
+database-backed web applications according to the Model-View-Controller pattern.
+
+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. ActiveRecord 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
{README}[link:files/activerecord/README_rdoc.html].
-The controller and view are handled by the Action Pack, which handles both
-layers by its two parts: Action View and Action Controller. These two layers
-are bundled in a single package due to their heavy interdependence. This is
-unlike the relationship between the Active Record and Action Pack that is much
-more separate. Each of these packages can be used independently outside of
-Rails. You can read more about Action Pack in its
-{README}[link:files/actionpack/README_rdoc.html].
+The Controller layer handles incoming requests HTTP requests (such as Save New Account,
+Update Product, Show Post). Controllers are responsible for providing a suitable response
+back to the client (usually a web browser, but possibly an JSON or XML API client, etc.).
+Controllers manipulate models and render the appropriate view templates to generate the 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 the Active Record and Action Pack which are
+independent. Each of these packages can be used independently outside of Rails. You
+can read more about Action Pack in its {README}[link:files/actionpack/README_rdoc.html].
== Getting Started