Ruby on Rails 2.1 - Структура Dir
Когда вы используете вспомогательный сценарий Rails для создания вашего приложения, он создает всю структуру каталогов для вашего приложения. Rails знает, где найти то, что ему нужно в этой структуре, поэтому вам не нужно вводить какие-либо данные.
Вот вид верхнего уровня дерева каталогов, созданного вспомогательным скриптом во время создания приложения. За исключением незначительных изменений между выпусками, каждый проект Rails будет иметь одинаковую структуру с одинаковыми соглашениями об именах. Такая последовательность дает вам огромное преимущество; вы можете быстро перемещаться между проектами Rails без повторного изучения организации проекта.
Чтобы понять эту структуру каталогов, давайте воспользуемся demoприложение, созданное в разделе установки. Это можно создать с помощью простой вспомогательной команды следующим образом:
C:\ruby\> rails -d mysql demo
Теперь перейдите в корневой каталог демонстрационного приложения следующим образом:
C:\ruby\> cd demo
C:\ruby\demo> dir
Вы найдете следующую структуру каталогов -
demo/
..../app
......../controller
......../helpers
......../models
......../views
............../layouts
..../config
..../db
..../doc
..../lib
..../log
..../public
..../script
..../test
..../tmp
..../vendor
README
Rakefile
Теперь давайте объясним назначение каждого каталога.
app- Он организует компоненты вашего приложения. У него есть подкаталоги, которые содержат представление (представления и помощники), контроллер (контроллеры) и внутреннюю бизнес-логику (модели).
app/controllers- В подкаталоге контроллеров Rails ищет классы контроллеров. Контроллер обрабатывает веб-запрос от пользователя.
app/helpers- Подкаталог helpers содержит все вспомогательные классы, используемые для поддержки классов модели, представления и контроллера. Это помогает сделать модель, представление и код контроллера небольшими, сфокусированными и незагроможденными.
app/models- Подкаталог models содержит классы, которые моделируют и обертывают данные, хранящиеся в базе данных нашего приложения. В большинстве фреймворков эта часть приложения может стать довольно запутанной, утомительной, многословной и подверженной ошибкам. Rails делает это очень просто!
app/view - Подкаталог views содержит шаблоны отображения для заполнения данными из нашего приложения, преобразования в HTML и возврата в браузер пользователя.
app/view/layouts- Содержит файлы шаблонов для макетов, которые будут использоваться с представлениями. Это моделирует общий метод упаковки представлений в верхнем и нижнем колонтитулах. В ваших представлениях определите макет с помощью <tt> layout: default </tt> и создайте файл с именем default.rhtml. Внутри default.erb вызовите <% yield%>, чтобы отобразить представление с использованием этого макета.
config- Этот каталог содержит небольшой объем кода конфигурации, который понадобится вашему приложению, включая конфигурацию вашей базы данных (в database.yml), структуру вашей среды Rails (environment.rb) и маршрутизацию входящих веб-запросов (routes.rb). Вы также можете настроить поведение трех сред Rails для тестирования, разработки и развертывания с помощью файлов, находящихся в каталоге сред.
db- Обычно ваше приложение Rails имеет объекты модели, которые обращаются к таблицам реляционной базы данных. Вы можете управлять реляционной базой данных с помощью скриптов, которые вы создаете и помещаете в этот каталог.
doc - В этом каталоге будет храниться документация вашего приложения при создании с использованием rake doc:app.
lib- Здесь находятся библиотеки для конкретных приложений. По сути, любой пользовательский код, не относящийся к контроллерам, моделям или помощникам. Этот каталог находится в пути загрузки.
log- Журналы ошибок находятся здесь. Rails создает сценарии, которые помогают вам управлять различными журналами ошибок. Вы найдете отдельные журналы для сервера (server.log) и каждой среды Rails (development.log, test.log и production.log).
public- Подобно общедоступному каталогу для веб-сервера, в этом каталоге есть веб-файлы, которые не изменяются, такие как файлы JavaScript (общедоступные / javascripts), графика (общедоступные / изображения), таблицы стилей (общедоступные / таблицы стилей) и файлы HTML (общедоступные ). Это должно быть установлено как DOCUMENT_ROOT вашего веб-сервера.
script- Этот каталог содержит сценарии для запуска и управления различными инструментами, которые вы будете использовать с Rails. Например, есть скрипты для генерации кода (генерации) и запуска веб-сервера (сервера) и т. Д.
test- Все тесты, которые вы пишете, и те, которые создает для вас Rails, находятся здесь. Вы увидите подкаталог для моков (mocks), модульных тестов (unit), fixture (fixtures) и функциональных тестов (функциональных).
tmp - Rails использует этот каталог для хранения временных файлов для промежуточной обработки.
vendor - Библиотеки, предоставляемые сторонними поставщиками (например, библиотеки безопасности или утилиты баз данных, помимо базового дистрибутива Rails), находятся здесь.
Помимо этих каталогов, в демо-каталоге будут доступны два файла.
README - Этот файл содержит основные сведения о приложении Rail и описание структуры каталогов, описанной выше.
Rakefile- Этот файл похож на Unix Makefile, который помогает в сборке, упаковке и тестировании кода Rails. Это будет использоватьсяrake утилита, поставляемая вместе с установкой Ruby.