Rails is well documented in its API, but there's "[[The 'Middle' Documentation Problem]]" where many newbies don't quite get how it all fits together.  This is partially because Rails has so many features, and partly because it's so easy ... once you get it.

To help people understand the different aspects of Rails, write a page called "\UnderstandingSomethingOrOther", link to it here, and give it a category of "Understanding".  UnderstandingModels, UnderstandingViews, and UnderstandingControllers should give a good example.  Don't explain _how_ to do something in these pages; link to a [[Howtos]] page instead.

h2. List of "Understanding" Pages

h3. The tools behind rails
* UnderstandingRuby (and [[UnderstandingVariableLifetimes|its variable scopes]])
* UnderstandingRegularExpressions
* UnderstandingAjax

h3. The developer's perspective

* Understanding Rails *conventions* (over configuration). E.g.:
** When to use/expect plural or singular
** Convention-solved things, like many-to-many models
** Capitalisation
** Prefixes/suffixes (xxxController)
** Etc, everything related to that.
* UnderstandingMVC
* UnderstandingWebApplications
* UnderstandingRailsMVC
* Understanding [[UnderstandingModels|models]], [[UnderstandingViews|views]], [[UnderstandingControllers|controllers]]
* UnderstandingDevTestProduction (aka UnderstandingEnvironments)
* UnderstandingWhatFilesGoesWhere -- an overview of the Rails directory structure.
* UnderstandingWhatMethodsGoesWhere (or "where to put the method you want to write")
<br>
* UnderstandingWebPageBreakdownIntoRailsPieces
* WhenToUseTheModelMethod
* UnderstandingTheScriptFiles

h3. A transaction's perspective

* UnderstandingHowRequestsAreRouted
* UnderstandingHowPagesAreRendered
* UnderstandingHowStateIsMaintained
* UnderstandingRequestParameters

h3. The user's perspective

...

h3. Rails components

* UnderstandingPartials (needs work)
* UnderstandingHelpers
* UnderstandingComponents (needs work)
* UnderstandingGenerators
* UnderstandingValidation (_not really a 'component' per se, but where else would this belong?_)
* UnderstandingMigrations
* UnderstandingSessions
* ... 


h2. About This Page

Is this "understanding" concept a good strategy for organising the Wiki?  Air your views in UnderstandingRailsDiscussion.

category: Understanding
