Зарегистрируйтесь, чтобы продолжить обучение

Введение Ruby: ActiveRecord (ORM)

Представим, что мы разрабатываем образовательную платформу. Идея проекта — хранить данные о пользователях, успеваемости, а также отображать их и изменять.

Чтобы решить задачу напрямую, нам придется написать код на языке программирования с вставками на чистом SQL. Так мы сможем взаимодействовать с базой данных. В нашем случае мы будем использовать язык программирования Ruby с SQL вставками.

Но в таком случае в одном логическом блоке используется неоднородный код с несколькими языками. Такой код тяжело читать и поддерживать.

Чтобы решить эту проблему, программисты используют ORM (Object-Relational Mapping). Он предоставляет функционал для построения запросов на языке программирования. Например, вместо написания SQL-запроса для создания нового пользователя:


INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com');

Мы будем использовать код на языке Ruby с использованием ORM:


User.create(name: 'John Doe', email: 'john.doe@example.com')

В этом примере мы видим, что запрос на чистом SQL превратился в язык Ruby, который привычнее и понятнее Ruby-разработчикам.

ORM переводит операции с объектами, которые написаны на языке программирования на язык базы данных и обратно. Это делает код понятным и уменьшает вероятность ошибок, которые могут возникнуть при написании SQL-запросов вручную. Так ORM облегчает взаимодействие между кодом и базой данных.

ORM для Ruby on Rails

Ruby on Rails использует собственную реализацию ORM под названием ActiveRecord, которой и посвящен этот курс.

ActiveRecord — это главный компонент Rails, который обеспечивает взаимодействие с базой данных. Он добавляет следующий функционал:

  • Создание, чтение, обновление и удаление записей (CRUD) — ActiveRecord предоставляет методы для выполнения операций с данными
  • Ассоциации между моделями — ActiveRecord позволяет определять отношения между моделями: «один к одному», «один ко многим», «многие ко многим»
  • Валидация данных — ActiveRecord предоставляет механизмы для проверки данных перед сохранением в базе данных
  • Миграции — ActiveRecord позволяет создавать, изменять и удалять структуру базы данных с использованием Ruby-кода

Структура курса

Курс разделен на ряд модулей, каждый из которых рассматривает определенную тему:

  1. ActiveRecord — обобщенный модуль с базовыми понятиями и операциями, которые связаны с ActiveRecord.
  2. Модели — здесь мы разберем, как с помощью моделей происходит взаимодействие языка Ruby с базой данных.
  3. Валидация данных — в этом модуле мы рассмотрим, как использовать встроенные механизмы ActiveRecord для проверки данных на корректность.
  4. Запросы — этот модуль поможет понять, как строить запросы в базу данных без использования SQL и работать с интерфейсом запросов для решения различных задач.
  5. Ассоциации между моделями — мы изучим, как определять и использовать связи между различными моделями в нашем проекте.
  6. Миграции — здесь мы углубимся в тему миграций, изучим, как создавать, изменять и удалять элементы базы данных с помощью миграций, а также познакомимся с понятием схемы базы данных.
  7. Расширенные возможности ActiveRecord — в этом модуле мы рассмотрим более сложные и продвинутые функции ActiveRecord: использование обратных вызовов (callbacks), оптимизация запросов и транзакции.
  8. Тестирование — в заключительном модуле мы изучим основы тестирования моделей на примере использования библиотеки RSpec для написания тестов на валидацию, ассоциации и другие аспекты работы с моделями.

Образовательные результаты

По окончании курса вы сможете:

  1. Работать с базой данных в проектах на Ruby on Rails с помощью ActiveRecord.
  2. Создавать модели Ruby on Rails и использовать их для работы с записями базы данных как с объектами языка Ruby.
  3. Применять валидацию данных для обеспечения корректности и целостности данных в вашем приложении.
  4. Использовать ORM для написания запросов в базу данных различной сложности на языке Ruby без использования SQL.
  5. Создавать и использовать ассоциации между моделями для упрощенного представления связей базы данных.

Дополнительные материалы

  1. Основы Ruby

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff