1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Fix READMEs (closes #2680) [coffee2code]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2908 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2005-11-07 09:51:47 +00:00
parent 3c8d425bb2
commit 6ab9f2bb40
4 changed files with 32 additions and 31 deletions

View file

@ -24,14 +24,14 @@ ActiveRecord[http://activerecord.rubyonrails.org] (an object-relational
mapping package), but that doesn't mean that Action Pack depends on Active mapping package), but that doesn't mean that Action Pack depends on Active
Record. Action Pack is an independent package that can be used with any sort Record. Action Pack is an independent package that can be used with any sort
of backend (Instiki[http://www.instiki.org], which is based on an older version of backend (Instiki[http://www.instiki.org], which is based on an older version
of Action Pack, uses Madeleine for example). Read more about the role Action of Action Pack, used Madeleine for example). Read more about the role Action
Pack can play when used together with Active Record on Pack can play when used together with Active Record on
http://www.rubyonrails.org. http://www.rubyonrails.org.
A short rundown of the major features: A short rundown of the major features:
* Actions grouped in controller as methods instead of separate command objects * Actions grouped in controller as methods instead of separate command objects
and can therefore helper share methods. and can therefore share helper methods.
BlogController < ActionController::Base BlogController < ActionController::Base
def display def display
@ -103,15 +103,15 @@ A short rundown of the major features:
def list def list
# Before this action is run, the user will be authenticated, the cache # Before this action is run, the user will be authenticated, the cache
# will be examined to see if a valid copy of the results already # will be examined to see if a valid copy of the results already
# exist, and the action will be logged for auditing. # exists, and the action will be logged for auditing.
# After this action has run, the output will first be localized then # After this action has run, the output will first be localized then
# compressed to minimize bandwith usage # compressed to minimize bandwidth usage
end end
private private
def authenticate def authenticate
# Implement the filter will full access to both request and response # Implement the filter with full access to both request and response
end end
end end
@ -316,7 +316,7 @@ A short rundown of the major features:
<%= form "post" %> <%= form "post" %>
...will generate something like (the selects will have more options of ...will generate something like (the selects will have more options, of
course): course):
<form action="create" method="POST"> <form action="create" method="POST">
@ -413,7 +413,7 @@ And the templates look like this:
This simple setup will list all the posts in the system on the index page, This simple setup will list all the posts in the system on the index page,
which is called by accessing /weblog/. It uses the form builder for the Active which is called by accessing /weblog/. It uses the form builder for the Active
Record model to make the new screen, which in turns hand everything over to Record model to make the new screen, which in turn hands everything over to
the create action (that's the default target for the form builder when given a the create action (that's the default target for the form builder when given a
new model). After creating the post, it'll redirect to the display page using new model). After creating the post, it'll redirect to the display page using
an URL such as /weblog/display/5 (where 5 is the id of the post). an URL such as /weblog/display/5 (where 5 is the id of the post).

View file

@ -1,14 +1,14 @@
= Active Record -- Object-relation mapping put on rails = Active Record -- Object-relation mapping put on rails
Active Record connects business objects and database tables to create a persistable Active Record connects business objects and database tables to create a persistable
domain model where logic and data is presented in one wrapping. It's an implementation domain model where logic and data are presented in one wrapping. It's an implementation
of the object-relational mapping (ORM) pattern[http://www.martinfowler.com/eaaCatalog/activeRecord.html] of the object-relational mapping (ORM) pattern[http://www.martinfowler.com/eaaCatalog/activeRecord.html]
by the same name as described by Martin Fowler: by the same name as described by Martin Fowler:
"An object that wraps a row in a database table or view, encapsulates "An object that wraps a row in a database table or view, encapsulates
the database access, and adds domain logic on that data." the database access, and adds domain logic on that data."
Active Records main contribution to the pattern is to relieve the original of two stunting problems: Active Record's 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 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 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. gap of functionality between the data mapper and active record approach.
@ -157,7 +157,7 @@ A short rundown of the major features:
pkId = 1234 pkId = 1234
cat = Cat.find(pkId) cat = Cat.find(pkId)
# something even more interesting involving a the same cat... # something even more interesting involving the same cat...
cat.save cat.save
{Learn more}[link:classes/ActiveRecord/Base.html] {Learn more}[link:classes/ActiveRecord/Base.html]
@ -189,7 +189,7 @@ A short rundown of the major features:
Data definitions are specified only in the database. Active Record queries the database for Data definitions are specified only in the database. Active Record queries the database for
the column names (that then serves to determine which attributes are valid) on regular the column names (that then serves to determine which attributes are valid) on regular
objects instantiation through the new constructor and relies on the column names in the rows object instantiation through the new constructor and relies on the column names in the rows
with the finders. with the finders.
# CREATE TABLE companies ( # CREATE TABLE companies (
@ -235,7 +235,7 @@ Active Record will also automatically link the "Person" object to the "people" t
== Simple example (2/2): Using the domain == Simple example (2/2): Using the domain
Picking a database connection for all the active records Picking a database connection for all the Active Records
ActiveRecord::Base.establish_connection( ActiveRecord::Base.establish_connection(
:adapter => "mysql", :adapter => "mysql",
@ -300,9 +300,9 @@ It's also highly recommended to have a look at the unit tests. Read more in link
== Philosophy == Philosophy
Active Record attempts to provide a coherent wrapping for the inconvenience that is Active Record attempts to provide a coherent wrapper as a solution for the inconvenience that is
object-relational mapping. The prime directive for this mapping has been to minimize object-relational mapping. The prime directive for this mapping has been to minimize
the amount of code needed to built a real-world domain model. This is made possible the amount of code needed to build a real-world domain model. This is made possible
by relying on a number of conventions that make it easy for Active Record to infer by relying on a number of conventions that make it easy for Active Record to infer
complex relations and structures from a minimal amount of explicit direction. complex relations and structures from a minimal amount of explicit direction.
@ -357,4 +357,4 @@ RubyForge page at http://rubyforge.org/projects/activerecord. And as Jim from Ra
new feature to be submitted in the form of new unit tests. new feature to be submitted in the form of new unit tests.
For other information, feel free to ask on the ruby-talk mailing list For other information, feel free to ask on the ruby-talk mailing list
(which is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com. (which is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com.

View file

@ -18,8 +18,8 @@ Documentation can be found at
== Installation == Installation
The prefered method of installing Active Support is through its GEM file. You'll need to have The preferred method of installing Active Support is through its GEM file. You'll need to have
RubyGems[http://rubygems.rubyforge.org/wiki/wiki.pl] installed for that, though. If you have, RubyGems[http://rubygems.rubyforge.org/wiki/wiki.pl] installed for that, though. If you have it,
then use: then use:
% [sudo] gem install activesupport-1.0.0.gem % [sudo] gem install activesupport-1.0.0.gem
@ -40,4 +40,4 @@ RubyForge page at http://rubyforge.org/projects/activesupport. And as Jim from R
new feature to be submitted in the form of new unit tests. new feature to be submitted in the form of new unit tests.
For other information, feel free to ask on the ruby-talk mailing list For other information, feel free to ask on the ruby-talk mailing list
(which is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com. (which is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com.

View file

@ -1,22 +1,22 @@
== Welcome to Rails == Welcome to Rails
Rails is a web-application and persistance framework that includes everything Rails is a web-application and persistence framework that includes everything
needed to create database-backed web-applications according to the needed to create database-backed web-applications according to the
Model-View-Control pattern of separation. This pattern splits the view (also Model-View-Control pattern of separation. This pattern splits the view (also
called the presentation) into "dumb" templates that are primarily responsible called the presentation) into "dumb" templates that are primarily responsible
for inserting pre-build data in between HTML tags. The model contains the 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 "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 the business logic and knows how to persist themselves to a database. The
controller handles the incoming requests (such as Save New Account, Update controller handles the incoming requests (such as Save New Account, Update
Product, Show Post) by manipulating the model and directing data to the view. Product, Show Post) by manipulating the model and directing data to the view.
In Rails, the model is handled by what's called a object-relational mapping 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 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 database rows as objects and embellish these data objects with business logic
methods. You can read more about Active Record in methods. You can read more about Active Record in
link:files/vendor/rails/activerecord/README.html. link:files/vendor/rails/activerecord/README.html.
The controller and view is handled by the Action Pack, which handles both 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 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 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 unlike the relationship between the Active Record and Action Pack that is much
@ -49,9 +49,9 @@ link:files/vendor/rails/actionpack/README.html.
</VirtualHost> </VirtualHost>
NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI NOTE: Be sure that CGIs can be executed in that directory as well. So ExecCGI
should be on and ".cgi" should respond. All requests from 127.0.0.1 goes should be on and ".cgi" should respond. All requests from 127.0.0.1 go
through CGI, so no Apache restart is necessary for changes. All other requests through CGI, so no Apache restart is necessary for changes. All other requests
goes through FCGI (or mod_ruby) that requires restart to show changes. go through FCGI (or mod_ruby), which requires a restart to show changes.
== Debugging Rails == Debugging Rails
@ -101,7 +101,7 @@ Finally, when you're ready to resume execution, you press CTRL-D
You can interact with the domain model by starting the console through script/console. You can interact with the domain model by starting the console through script/console.
Here you'll have all parts of the application configured, just like it is when the Here you'll have all parts of the application configured, just like it is when the
application is running. You can inspect domain models, change values, and save to the application is running. You can inspect domain models, change values, and save to the
database. Start the script without arguments will launch it in the development environment. database. Starting the script without arguments will launch it in the development environment.
Passing an argument will specify a different environment, like <tt>console production</tt>. Passing an argument will specify a different environment, like <tt>console production</tt>.
@ -117,11 +117,11 @@ app/controllers
app/models app/models
Holds models that should be named like post.rb. Holds models that should be named like post.rb.
Most models will descent from ActiveRecord::Base. Most models will descend from ActiveRecord::Base.
app/views app/views
Holds the template files for the view that should be named like Holds the template files for the view that should be named like
weblog/index.rhtml for the WeblogController#index action. All views uses eRuby weblog/index.rhtml for the WeblogController#index action. All views use eRuby
syntax. This directory can also be used to keep stylesheets, images, and so on syntax. This directory can also be used to keep stylesheets, images, and so on
that can be symlinked to public. that can be symlinked to public.
@ -132,14 +132,14 @@ config
Configuration files for the Rails environment, the routing map, the database, and other dependencies. Configuration files for the Rails environment, the routing map, the database, and other dependencies.
components components
Self-contained mini-applications that can bundle controllers, models, and views together. Self-contained mini-applications that can bundle together controllers, models, and views.
lib lib
Application specific libraries. Basically, any kind of custom code that doesn't Application specific libraries. Basically, any kind of custom code that doesn't
belong controllers, models, or helpers. This directory is in the load path. belong under controllers, models, or helpers. This directory is in the load path.
public public
The directory available for the web server. Contains sub-directories for images, stylesheets, The directory available for the web server. Contains subdirectories for images, stylesheets,
and javascripts. Also contains the dispatchers and the default HTML files. and javascripts. Also contains the dispatchers and the default HTML files.
script script
@ -149,4 +149,5 @@ test
Unit and functional tests along with fixtures. Unit and functional tests along with fixtures.
vendor vendor
External libraries that the application depend on. This directory is in the load path. External libraries that the application depends on. Also includes the plugins subdirectory.
This directory is in the load path.