Когда вы используете вспомогательный скрипт Rails для создания вашего приложения, он создает всю структуру каталогов для вашего приложения. Rails знает, где найти вещи, которые ему нужны в этой структуре, поэтому вам не нужно ничего вводить.
Вот представление верхнего уровня дерева каталогов, созданного вспомогательным сценарием во время создания приложения. За исключением незначительных изменений между выпусками, каждый проект Rails будет иметь одинаковую структуру с одинаковыми соглашениями об именах. Эта последовательность дает вам огромное преимущество; вы можете быстро перемещаться между Rails-проектами без повторного изучения организации проекта.
Чтобы понять эту структуру каталогов, давайте использовать демонстрационное приложение, созданное в главе по установке. Это можно создать с помощью простой вспомогательной команды следующим образом:
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 / controllers — подкаталог 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) и маршрутизацию входящих веб-запросов (rout.rb). Вы также можете настроить поведение трех сред Rails для тестирования, разработки и развертывания с помощью файлов, находящихся в каталоге сред.
-
db — Обычно ваше Rails-приложение имеет объекты модели, которые обращаются к таблицам реляционной базы данных. Вы можете управлять реляционной базой данных с помощью скриптов, которые вы создаете и размещаете в этом каталоге.
-
doc — в этом каталоге будет храниться документация вашего приложения при генерации с помощью rake doc: app .
-
lib — библиотеки для конкретных приложений. По сути, любой вид пользовательского кода, который не относится к контроллерам, моделям или помощникам. Этот каталог находится в пути загрузки.
-
log — Журналы ошибок идут сюда. Rails создает скрипты, которые помогают вам управлять различными журналами ошибок. Вы найдете отдельные журналы для сервера (server.log) и каждой среды Rails (development.log, test.log и production.log).
-
public — подобно общедоступному каталогу для веб-сервера, в этом каталоге есть неизменяемые веб-файлы, такие как файлы JavaScript (public / javascripts), графика (public / images), таблицы стилей (public / stylesheets) и файлы HTML ( общественности). Это должно быть установлено как DOCUMENT_ROOT вашего веб-сервера.
-
script — Этот каталог содержит скрипты для запуска и управления различными инструментами, которые вы будете использовать с Rails. Например, есть сценарии для генерации кода (генерирования) и запуска веб-сервера (сервера) и т. Д.
-
test — тесты, которые вы пишете и которые создает для вас Rails, все здесь. Вы увидите подкаталог для макетов (mocks), модульных тестов (unit), приспособлений (fixtures) и функциональных тестов (функциональных).
-
tmp — Rails использует этот каталог для хранения временных файлов для промежуточной обработки.
-
vendor — библиотеки, предоставляемые сторонними поставщиками (например, библиотеки безопасности или утилиты баз данных, выходящие за рамки основного дистрибутива Rails).
приложение — это организует ваши компоненты приложения. У него есть подкаталоги, которые содержат представление (представления и помощники), контроллер (контроллеры) и бэкэнд-бизнес-логику (модели).
app / controllers — подкаталог 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) и маршрутизацию входящих веб-запросов (rout.rb). Вы также можете настроить поведение трех сред Rails для тестирования, разработки и развертывания с помощью файлов, находящихся в каталоге сред.
db — Обычно ваше Rails-приложение имеет объекты модели, которые обращаются к таблицам реляционной базы данных. Вы можете управлять реляционной базой данных с помощью скриптов, которые вы создаете и размещаете в этом каталоге.
doc — в этом каталоге будет храниться документация вашего приложения при генерации с помощью rake doc: app .
lib — библиотеки для конкретных приложений. По сути, любой вид пользовательского кода, который не относится к контроллерам, моделям или помощникам. Этот каталог находится в пути загрузки.
log — Журналы ошибок идут сюда. Rails создает скрипты, которые помогают вам управлять различными журналами ошибок. Вы найдете отдельные журналы для сервера (server.log) и каждой среды Rails (development.log, test.log и production.log).
public — подобно общедоступному каталогу для веб-сервера, в этом каталоге есть неизменяемые веб-файлы, такие как файлы JavaScript (public / javascripts), графика (public / images), таблицы стилей (public / stylesheets) и файлы HTML ( общественности). Это должно быть установлено как DOCUMENT_ROOT вашего веб-сервера.
script — Этот каталог содержит скрипты для запуска и управления различными инструментами, которые вы будете использовать с Rails. Например, есть сценарии для генерации кода (генерирования) и запуска веб-сервера (сервера) и т. Д.
test — тесты, которые вы пишете и которые создает для вас Rails, все здесь. Вы увидите подкаталог для макетов (mocks), модульных тестов (unit), приспособлений (fixtures) и функциональных тестов (функциональных).
tmp — Rails использует этот каталог для хранения временных файлов для промежуточной обработки.
vendor — библиотеки, предоставляемые сторонними поставщиками (например, библиотеки безопасности или утилиты баз данных, выходящие за рамки основного дистрибутива Rails).
Помимо этих каталогов, в демонстрационном каталоге будет два файла.
README — Этот файл содержит основную информацию о Rail Application и описание структуры каталогов, описанной выше.
Rakefile — этот файл похож на Unix Makefile, который помогает в сборке, упаковке и тестировании кода Rails. Это будет использоваться утилитой rake, поставляемой вместе с установкой Ruby.