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