Ruby On Rails
2026-02-26 17:10 Diff

В этом уроке рассмотрим структуру проекта на 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-адресов и связывание их с соответствующими контроллерами и действиями.
  • Контроллеры обрабатывают запросы, управляют потоком данных и взаимодействуют с моделями и представлениями.
  • Представления отвечают за отображение данных пользователю и формируют пользовательский интерфейс приложения.
  • Генераторы упрощают создание шаблонов, моделей, контроллеров и других компонентов, что ускоряет разработку.