Rails — це веб-фреймворк, розроблений для мови програмування Ruby. Код в Rails організовано за допомогою архітектури Model-View-Controller (MVC).
- Model (Модель) — Керує даними вашого додатку. Зазвичай це таблиці бази даних.
- View (Подання) — Відповідає за рендеринг відповідей в різних форматах, таких як HTML, JSON, XML тощо.
- Controller (Контролер) — Обробляє взаємодії з користувачем і логіку для кожного запиту.
У Ruby on Rails модель є основним інтерфейсом для взаємодії з вашою базою даних. Серед різних методів для отримання даних, find
та find_by
є двома найбільш часто використовуваними. Хоча обидва методи використовуються для отримання записів з бази даних, вони працюють дещо по-різному. Розуміння цих відмінностей є важливим для написання ефективного та безпомилкового коду на Rails.
Model.find
1- Параметр: ID об'єкта, який потрібно знайти.
2- Якщо знайдено: Повертає об'єкт (лише один об'єкт).
3- Якщо не знайдено: викидає виключення ActiveRecord::RecordNotFound
.
Model.find_by
1- Параметр: ключ/значення.
2- Якщо знайдено: Повертає об'єкт.
3- Якщо не знайдено: Повертає nil
.
Висновок
І find
, і find_by
є важливими методами в ActiveRecord для отримання записів, але вони служать різним цілям. Використовуйте find
, коли потрібно отримати запис за його ID і хочете, щоб виключення було викинуте, якщо запис відсутній. З іншого боку, використовуйте find_by
, коли шукаєте за атрибутами і бажаєте отримати nil
, а не помилку, якщо запис не знайдено.
Перекладено з: Mastering ActiveRecord: When to Use find and find_by in Rails