Ie been talking (and hyping) Rails for so long that it all wierd to 
finally have it out in the open. Mind you, wee still not talking 
about a 1.0 release, but the package currently on offer is still 
something I very comfortable to share with the world. Undoubtedly, 
there could be more documentation and more examples, but Real Artists 
Ship and this piece will grow in public. Enjoy Rails!

Documentation, download: http://www.rubyonrails.org


What is Rails?
==============

Rails is a open source web-application framework for Ruby. It ships 
with an answer for every letter in MVC: Action Pack for the Controller 
and View, Active Record for the Model.

Everything needed to build real-world applications in less lines of 
code than other frameworks spend setting up their XML configuraion 
files. Like Basecamp, which was launched after 4 KLOCs and two months 
of developement by a single programmer.

Being a full-stack framework means that all layers are built to work 
seemlessly together. That way you Don Repeat Yourself (DRY) and you 
can use a single language from top to bottom. Everything from templates 
to control flow to business logic is written in Rubyhe language of 
love for industry heavy-weights

In striving for DRY compliance, Rails shuns configuration files and 
annotations in favor of reflection and run-time extensions. This means 
the end of XML files telling a story that has already been told in 
code. It means no compilation phase: Make a change, see it work. 
Meta-data is an implementation detail left for the framework to handle.


What is Active Record?
======================

Active Record connects business objects and database tables to create a 
persistable domain model where logic and data is presented in one 
wrapping. It an implementation of the object-relational mapping (ORM) 
pattern by the same name as described by Martin Fowler:

    An object that wraps a row in a database table or view,
    encapsulates the database access, and adds domain logic on that data.

Active Record main contribution to the pattern is to relieve the 
original of two stunting problems: lack of associations and 
inheritance. By adding a simple domain language-like set of macros to 
describe the former and integrating the Single Table Inheritance 
pattern for the latter, Active Record narrows the gap of functionality 
between the data-mapper and active record approach.

Learn more: http://activerecord.rubyonrails.org


What is Action Pack?
====================

Action Pack splits the response to a web request into a controller part 
(performing the logic) and a view part (rendering a template). This 
two-step approach is known as an action, which will normally create, 
read, update, or delete (CRUD for short) some sort of model part (often 
database) before choosing either to render a template or redirecting to 
another action.

Action Pack implements these actions as public methods on Action 
Controllers and uses Action Views to implement the template rendering. 
Action Controllers are then responsible for handling all the actions 
relating to a certain part of an application. This grouping usually 
consists of actions for lists and for CRUDs revolving around a single 
(or a few) model objects. So ContactController would be responsible for 
listing contacts, creating, deleting, and update contacts. A 
WeblogController could be responsible for both posts and comments.

Action View templates are written using embedded Ruby in tags mingled 
in with the HTML. To avoid cluttering the templates with code, a bunch 
of helper classes provide common behavior for forms, dates, and 
strings. And it easy to add specific helpers to keep the separation 
as the application extends.

Learn more: http://actionpack.rubyonrails.org


--
David Heinemeier Hansson,
http://www.instiki.org/      -- A No-Step-Three Wiki in Ruby
http://www.basecamphq.com/   -- Web-based Project Management
http://www.loudthinking.com/ -- Broadcasting Brain
http://www.nextangle.com/    -- Development & Consulting Services