Ruby on Rails – ein hochrangiges Framework, das auf Ruby basiert. Die gesamte Effizienz dieses Werkzeugs zeigt sich in seinen eingebauten Bibliotheken, einschließlich Active Record, das eine ORM (Object-Relational Mapping) Bibliothek darstellt.
Active Record und ORM sind ein praktisches Werkzeug für die Interaktion mit Datenbanken, ohne SQL-Code schreiben zu müssen.
Active Record: was ist das und wie verwendet man es
Active Record implementiert den Ansatz „Convention over Configuration“, der die Interaktion mit Datenbanken vereinfacht. Sie können Datensätze in der Datenbank erstellen, aktualisieren, lesen und löschen, ohne direkt SQL-Abfragen zu schreiben. Lassen Sie uns diesen Prozess im Detail aufschlüsseln.
Erstellen von Datensätzen
user = User.new
user.name = "John Doe"
user.save
Oder
User.create(name: "John Doe")
Die oben genannten Beispiele führen das gleiche Ergebnis aus: Sie speichern einen neuen Benutzer mit dem Namen „John Doe“. Dabei wird eine SQL-Abfrage generiert, um diese Aktion auszuführen, aber der Programmierer muss dies nicht wissen (tatsächlich sollte er es wissen).
Aktualisieren von Datensätzen
user = User.find_by(name: "John Doe")
user.name = "Jane Doe"
user.save
Oder
User.update(name: "Jane Doe")
Beide Beispiele aktualisieren den Benutzernamen auf „Jane Doe“.
Löschen von Datensätzen
user = User.find_by(name: "Jane Doe")
user.destroy
Oder
User.delete_all(name: "Jane Doe")
Auf diese Weise wird das Benutzerkonto „Jane Doe“ gelöscht.
Sicherheit von Active Record
Ein wichtiger Aspekt bei der Verwendung von Active Record ist die Anwendung von Sicherheitsprinzipien. Man muss sich der Möglichkeit von SQL-Injection bewusst sein und wissen, wie man sie verhindert. Es ist nicht erlaubt, Benutzerdaten direkt in die Abfrage einzufügen.
User.where("name = ?", params[:name])
In diesem Beispiel wird der vom Benutzer eingegebene Wert nicht direkt verwendet, um eine SQL-Abfrage zu erstellen.
Indem Sie diese Prinzipien befolgen, können Sie Active Record so konfigurieren, dass es optimal als Brücke zwischen Ihrem Ruby-Code und der Datenbank fungiert.
```