Проглиблене вивчення Ruby on Rails: використання Active Record для взаємодії з базами даних
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 кодом і базою даних.