Проглиблене вивчення Ruby on Rails: використання Active Record для взаємодії з базами даних

Ruby on Rails – високорівневий фреймворк, який працює на Ruby. Вся ефективність цього інструменту проявляється в його вбудованих бібліотеках, в тому числі у Active Record, який являє собою ORM (Object-Relational Mapping) бібліотеку.

Active Record і ORM стали зручним інструментом для взаємодії з базами даних без написання SQL коду.

Active Record: що це таке і як використовувати

Active Record реалізує підхід “Convention over Configuration”, що спрощує взаємодію з базами даних. Ви можете створювати, оновлювати, зчитувати і видаляти записи з бази даних без прямого написання SQL-запитів. Давайте детальніше розіб’ємо цей процес.

Створення записів

user = User.new
user.name = "John Doe"
user.save
Або
User.create(name: "John Doe")

Вищезазначені приклади виконують однаковий результат: вони записують нового користувача з ім’ям “John Doe”. При цьому генерується SQL-запит для виконання цієї дії, але програмісту це не потрібно знати (насправді треба).

Оновлення записів

user = User.find_by(name: "John Doe")
user.name = "Jane Doe"
user.save
Або
User.update(name: "Jane Doe")

Обидва приклади оновлюють ім’я користувача на “Jane Doe”.

Видалення записів

user = User.find_by(name: "Jane Doe")
user.destroy
Або
User.delete_all(name: "Jane Doe")

У такий спосіб видаляється обліковий запис користувача “Jane Doe”.

Безпека Active Record

Важливим моментом використання Active Record є застосування принципів безпеки. Потрібно усвідомлювати можливість SQL-ін’єкцій та знати, як запобігти їм. Неможна вставляти дані, які надає користувач напряму у запит.

User.where("name = ?", params[:name])

У цьому прикладі, значення, яке вводиться користувачем, не використовується напряму напряму для створення SQL-запиту.

Заклавши ці принципи, ви зможете налаштувати Active Record так, щоб він оптимально виконував роль мосту між вашим Ruby кодом і базою даних.