- Rails 2.1 Sends Emails
- Rails 2.1 Uploads Files
- Rails 2.1 and AJAX
- Rails 2.1 Scaffolding
- Rails 2.1 Layouts
- Rails 2.1 Views
- Rails 2.1 Controllers
- Rails 2.1 Migrations
- Rails 2.1 Active Records
- Rails 2.1 Database Setup
- Rails 2.1 Examples
- Rails 2.1 Dir Structure
- Rails 2.1 Framework
- Rails 2.1 Installation
- Rails 2.1 Introduction
- Rails 2.1 Home
Advanced Ruby on Rails 2.1
- Rails 2.1 Tips & Tricks
- Rails 2.1 Unit Testing
- Rails 2.1 Routes System
- Rails 2.1 Error Handling
- Rails 2.1 Basic HTTP Auth
- Rails 2.1 RMagick Guide
Quick Reference Guide
Ruby on Rails 2.1 Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Ruby on Rails 2.1 - Dir Structure
When you use the helper script of Rails to create your apppcation, it creates the entire directory structure for your apppcation. Rails knows where to find things it needs within this structure, so you don t have to provide any input.
Here is a top-level view of the directory tree created by the helper script at the time of an apppcation creation. Except for minor changes between the releases, every Rails project will have the same structure with the same naming conventions. This consistency gives you a tremendous advantage; you can quickly move between Rails projects without re-learning the project s organization.
To understand this directory structure, let s use the demo apppcation created in the installation chapter. This can be created using a simple helper command as follows −
C: uby> rails -d mysql demo
Now, go into the demo apppcation root directory as follows −
C: uby> cd demo C: ubydemo> dir
You will find a directory structure as follows −
demo/ ..../app ......../controller ......../helpers ......../models ......../views ............../layouts ..../config ..../db ..../doc ..../pb ..../log ..../pubpc ..../script ..../test ..../tmp ..../vendor README Rakefile
Now let s explain the purpose of each directory.
app − It organizes your apppcation components. It s got subdirectories that hold the view (views and helpers), controller (controllers), and the backend business logic (models).
app/controllers − The controllers subdirectory is where Rails looks to find controller classes. A controller handles a web request from the user.
app/helpers − The helpers subdirectory holds any helper classes used to assist the model, view, and controller classes. It helps to keep the model, view, and controller code small, focused, and uncluttered.
app/models − The models subdirectory holds the classes that model and wrap the data stored in our apppcation s database. In most frameworks, this part of the apppcation can grow pretty messy, tedious, verbose, and error-prone. Rails makes it dead simple!
app/view − The views subdirectory holds the display templates to fill in with data from our apppcation, convert to HTML, and return to the user s browser
app/view/layouts − Holds the template files for layouts to be used with views. This models the common header/footer method of wrapping views. In your views, define a layout using the <tt>layout :default </tt> and create a file named default.rhtml. Inside default.erb, call <% yield %> to render the view using this layout.
config − This directory contains a small amount of configuration code that your apppcation will need, including your database configuration (in database.yml), your Rails environment structure (environment.rb), and routing of incoming web requests (routes.rb). You can also tailor the behavior of the three Rails environments for test, development, and deployment with files found in the environments directory.
db − Usually, your Rails apppcation will have model objects that access relational database tables. You can manage the relational database with scripts you create and place in this directory.
doc − This directory is where your apppcation documentation will be stored when generated using rake doc:app.
pb − Apppcation-specific pbraries go here. Basically, any kind of custom code that doesn t belong under controllers, models, or helpers. This directory is in the load path.
log − Error logs go here. Rails creates scripts that help you manage various error logs. You ll find separate logs for the server (server.log) and each Rails environment (development.log, test.log, and production.log).
pubpc − Like the pubpc directory for a web server, this directory has web files that don t change, such as JavaScript files (pubpc/javascripts), graphics (pubpc/images), stylesheets (pubpc/stylesheets), and HTML files (pubpc). This should be set as the DOCUMENT_ROOT of your web server.
script − This directory holds scripts to launch and manage the various tools that you ll use with Rails. For example, there are scripts to generate code (generate) and launch the web server (server), etc.
test − The tests you write and those Rails creates for you, all goes here. You ll see a subdirectory for mocks (mocks), unit tests (unit), fixtures (fixtures), and functional tests (functional).
tmp − Rails uses this directory to hold temporary files for intermediate processing.
vendor − Libraries provided by third-party vendors (such as security pbraries or database utipties beyond the basic Rails distribution) goes here.
Apart from these directories, there will be two files available in the demo directory.
README − This file contains a basic detail about Rail Apppcation and description of the directory structure explained above.
Rakefile − This file is similar to Unix Makefile, which helps in building, packaging, and testing the Rails code. This will be used by rake utipty suppped along with Ruby installation.