Ruby on Rails – ein hochgradiger Framework, der 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 zum gleichen Ergebnis: Sie erstellen 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 (in Wirklichkeit schon).
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, Daten, die vom Benutzer bereitgestellt werden, 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.