Ruby On Rails
Теория: Overview
В этом уроке рассмотрим структуру проекта на Rails.
Структура проекта
При создании нового проекта на Rails с помощью команды rails new my_app создается предопределенная структура каталогов. Основные директории включают:
- app/: здесь находятся основные компоненты приложения:
- models/: модели данных.
- views/: шаблоны для отображения.
- controllers/: контроллеры, обрабатывающие запросы.
- helpers/: вспомогательные модули.
- assets/: статические файлы (CSS, JavaScript, изображения).
- config/: файлы конфигурации приложения, включая маршруты и настройки среды.
- db/: миграции и схемы базы данных.
- lib/: дополнительные библиотеки и модули.
- log/: файлы журналов приложения.
- test/ или spec/: тесты для приложения.
Окружение
Rails поддерживает несколько окружений по умолчанию:
- development: для разработки.
- test: для запуска тестов.
- production: для рабочего приложения.
Каждое окружение может иметь свои настройки в файле config/environments/*.rb. Там же можно создать новое окружение.
У каждого окружения могут быть свои зависимости. Например для локальной разработки мы можем использовать базу данных SQLite, а для продакшена - PostgreSQL:
Модели
Модели в Rails представляют данные и бизнес-логику. Они обычно наследуются от ActiveRecord::Base, что позволяет им взаимодействовать с базой данных. Пример модели резюме из Hexlet CV:
Миграции
Миграции позволяют управлять изменениями в структуре базы данных. Они записываются в виде отдельных файлов в каталоге db/migrate. Пример миграции для создания таблицы пользователей:
Роутинг
Роутинг в Rails управляет тем, как запросы направляются к контроллерам. Файл маршрутов находится в config/routes.rb. Пример файла с маршрутами:
Контроллеры
Контроллеры обрабатывают запросы и взаимодействуют с моделями. Они находятся в каталоге app/controllers. Пример контроллера для пользователей:
Представления
Представления (views) отвечают за отображение данных пользователю. Они находятся в каталоге app/views. Каждое действие контроллера имеет соответствующий файл в виде HTML-шаблона (обычно с расширением .html.erb или .html.slim). Например, для метода index контроллера UsersController будет файл app/views/users/index.html.erb.
Пример представления для отображения страницы резюме с помощью шаблонизатора Slim:
Генераторы
Rails предоставляет генераторы, которые помогают быстро создавать модели, контроллеры, миграции и другие компоненты. Например, чтобы создать модель пользователя с миграцией, используйте:
Это создаст файл модели и соответствующую миграцию. Для отмены изменений используйте destroy:
Список всех генераторов можно посмотреть командой bin/rails generate
Выводы
Мы рассмотрели ключевые компоненты структуры проекта на Rails, которые позволяют организовать разработку веб-приложений.
- Команда
rails new <app_name>создает новый проект.. - Окружение определяет настройки и конфигурации для разработки, тестирования и продакшена, что обеспечивает гибкость в работе приложения.
- Модели описывают данные и бизнес-логику приложения, связывая их с базой данных через Active Record.
- Миграции служат для управления изменениями в схеме базы данных, позволяя легко вносить изменения в структуру данных.
- Роутинг отвечает за определение URL-адресов и связывание их с соответствующими контроллерами и действиями.
- Контроллеры обрабатывают запросы, управляют потоком данных и взаимодействуют с моделями и представлениями.
- Представления отвечают за отображение данных пользователю и формируют пользовательский интерфейс приложения.
- Генераторы упрощают создание шаблонов, моделей, контроллеров и других компонентов, что ускоряет разработку.

