Ruby on Rails – wysokopoziomowy framework, który działa na Ruby. Cała efektywność tego narzędzia przejawia się w jego wbudowanych bibliotekach, w tym w Active Record, który jest biblioteką ORM (Object-Relational Mapping).
Active Record i ORM stały się wygodnym narzędziem do interakcji z bazami danych bez pisania kodu SQL.
Active Record: co to jest i jak używać
Active Record realizuje podejście “Convention over Configuration”, co upraszcza interakcję z bazami danych. Możesz tworzyć, aktualizować, odczytywać i usuwać rekordy z bazy danych bez bezpośredniego pisania zapytań SQL. Przyjrzyjmy się bliżej temu procesowi.
Tworzenie rekordów
user = User.new
user.name = "John Doe"
user.save
Lub
User.create(name: "John Doe")
Przykłady powyżej dają ten sam wynik: zapisują nowego użytkownika o imieniu “John Doe”. Przy tym generowane jest zapytanie SQL do wykonania tej akcji, ale programista nie musi tego wiedzieć (w rzeczywistości musi).
Aktualizacja rekordów
user = User.find_by(name: "John Doe")
user.name = "Jane Doe"
user.save
Lub
User.update(name: "Jane Doe")
Obydwa przykłady aktualizują imię użytkownika na “Jane Doe”.
Usuwanie rekordów
user = User.find_by(name: "Jane Doe")
user.destroy
Lub
User.delete_all(name: "Jane Doe")
W ten sposób usuwane jest konto użytkownika “Jane Doe”.
Bezpieczeństwo Active Record
Ważnym aspektem korzystania z Active Record jest stosowanie zasad bezpieczeństwa. Należy być świadomym możliwości ataków SQL injection i wiedzieć, jak im zapobiegać. Nie można wstawiać danych, które użytkownik podaje bezpośrednio do zapytania.
User.where("name = ?", params[:name])
W tym przykładzie wartość wprowadzona przez użytkownika nie jest używana bezpośrednio do tworzenia zapytania SQL.
Stosując te zasady, będziesz mógł skonfigurować Active Record tak, aby optymalnie pełnił rolę mostu między Twoim kodem Ruby a bazą danych.