- INSERT INTO users (name, email) VALUES ('John Doe', 'john.doe@example.com');
- User.create(name: 'John Doe', email: 'john.doe@example.com')
- ORM для Ruby on Rails
- Структура курса
- Образовательные результаты
Представим, что мы разрабатываем образовательную платформу. Идея проекта — хранить данные о пользователях, успеваемости, а также отображать их и изменять.
Чтобы решить задачу напрямую, нам придется написать код на языке программирования с вставками на чистом 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-кода
Структура курса
Курс разделен на ряд модулей, каждый из которых рассматривает определенную тему:
- ActiveRecord — обобщенный модуль с базовыми понятиями и операциями, которые связаны с ActiveRecord.
- Модели — здесь мы разберем, как с помощью моделей происходит взаимодействие языка Ruby с базой данных.
- Валидация данных — в этом модуле мы рассмотрим, как использовать встроенные механизмы ActiveRecord для проверки данных на корректность.
- Запросы — этот модуль поможет понять, как строить запросы в базу данных без использования SQL и работать с интерфейсом запросов для решения различных задач.
- Ассоциации между моделями — мы изучим, как определять и использовать связи между различными моделями в нашем проекте.
- Миграции — здесь мы углубимся в тему миграций, изучим, как создавать, изменять и удалять элементы базы данных с помощью миграций, а также познакомимся с понятием схемы базы данных.
- Расширенные возможности ActiveRecord — в этом модуле мы рассмотрим более сложные и продвинутые функции ActiveRecord: использование обратных вызовов (callbacks), оптимизация запросов и транзакции.
- Тестирование — в заключительном модуле мы изучим основы тестирования моделей на примере использования библиотеки RSpec для написания тестов на валидацию, ассоциации и другие аспекты работы с моделями.
Образовательные результаты
По окончании курса вы сможете:
- Работать с базой данных в проектах на Ruby on Rails с помощью ActiveRecord.
- Создавать модели Ruby on Rails и использовать их для работы с записями базы данных как с объектами языка Ruby.
- Применять валидацию данных для обеспечения корректности и целостности данных в вашем приложении.
- Использовать ORM для написания запросов в базу данных различной сложности на языке Ruby без использования SQL.
- Создавать и использовать ассоциации между моделями для упрощенного представления связей базы данных.
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.