0Pricing
Ruby Academy · Lektion

Active-Record-Grundlagen

Grundlagen des ORM

Active-Record-Grundlagen ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Active Record?

Active Record ist die ORM-Schicht (Object-Relational Mapper) von Rails. Sie verbindet Ruby-Objekte mit Zeilen einer Datenbanktabelle, sodass Sie mit Objekten statt mit direktem SQL arbeiten.

  • Eine Klasse wird einer Tabelle zugeordnet.
  • Eine Instanz wird einer Zeile zugeordnet.
  • Ein Attribut wird einer Spalte zugeordnet.

Ein Modell definieren

Ein Modell ist eine Klasse, die von ApplicationRecord erbt (und dieses wiederum von ActiveRecord::Base). Nach Konvention wird ein User-Modell automatisch der Tabelle users zugeordnet.

class User < ApplicationRecord
end

# Maps to the 'users' table
# Columns become attributes automatically

Konvention vor Konfiguration

Active Record verwendet Namenskonventionen, sodass Sie weniger Konfiguration schreiben müssen:

  • Klassennamen stehen im Singular und in CamelCase: User.
  • Tabellennamen stehen im Plural und in snake_case: users.
  • Der Primärschlüssel ist standardmäßig id.

Wenn Sie die Konventionen einhalten, wird der größte Teil der Verknüpfung automatisch eingerichtet.

Datensätze erstellen

Erstellen Sie Zeilen mit create oder bauen Sie zunächst einen Datensatz auf und verwenden Sie dann save. create instanziiert und speichert in einem einzigen Aufruf.

user = User.create(name: "Ada", email: "ada@example.com")

# Or in two steps:
other = User.new(name: "Linus")
other.email = "linus@example.com"
other.save

Datensätze lesen

Rufen Sie Datensätze mit Finder-Methoden ab:

  • User.find(1) über den Primärschlüssel (löst einen Fehler aus, wenn der Datensatz fehlt).
  • User.find_by(email: 'a@b.com') über eine beliebige Spalte (gibt nil zurück, wenn der Datensatz fehlt).
  • User.all für alle Zeilen.
  • User.first und User.last.
user = User.find(1)
admin = User.find_by(role: "admin")
everyone = User.all

Datensätze aktualisieren

Ändern Sie Attribute und verwenden Sie anschließend save, oder verwenden Sie update, um Zuweisung und Speicherung zusammen auszuführen. update gibt abhängig von der Validierung true oder false zurück.

user = User.find(1)
user.update(name: "Ada Lovelace")

# Equivalent two-step form:
user.name = "Ada Lovelace"
user.save

Datensätze löschen

Entfernen Sie Zeilen mit destroy (führt Callbacks und Verknüpfungen aus) oder mit delete (direktes SQL, überspringt Callbacks). Bevorzugen Sie destroy, außer Sie haben einen Grund, Callbacks zu umgehen.

user = User.find(1)
user.destroy

# Bulk destroy:
User.where(active: false).destroy_all

Attribute und Dirty Tracking

Active Record verfolgt nicht gespeicherte Änderungen. Methoden wie changed?, changes und name_was zeigen Ihnen vor dem Speichern, welche Werte geändert wurden. Das ist in Callbacks und beim Protokollieren nützlich.

user = User.find(1)
user.name = "New Name"
puts user.changed?      # true
puts user.name_was      # old value
puts user.changes.inspect

Die Datei schema.rb

Active Record liest die Struktur Ihrer Tabellen aus der Datenbank und nicht aus Ihrem Modell. Die aktuelle Struktur wird in db/schema.rb gespiegelt, das aus Migrationen erzeugt wird. Sie müssen diese Datei nur selten von Hand bearbeiten.

Wo wird SQL ausgeführt?

Active Record wandelt Ihre Methodenaufrufe im Hintergrund in SQL um. Aus User.find(1) wird SELECT * FROM users WHERE id = 1 LIMIT 1. Das erzeugte SQL können Sie mit User.where(active: true).to_sql anzeigen.

sql = User.where(active: true).to_sql
# => SELECT "users".* FROM "users" WHERE "users"."active" = TRUE

Warum ein ORM hilfreich ist

Active Record bietet Ihnen:

  • Datenbankunabhängigen Code (PostgreSQL, MySQL, SQLite).
  • Schutz vor SQL-Injection durch parametrisierte Abfragen.
  • Lesbaren, objektorientierten Datenzugriff.

Nur in besonderen Fällen greifen Sie auf direktes SQL zurück.

Kurzer Test

Testen Sie Ihr Verständnis der Grundlagen von Active Record.

Zusammenfassung: Active-Record-Grundlagen

Sie haben die Grundlagen von ORM kennengelernt:

  • Eine Klasse wird einer Tabelle und eine Instanz einer Zeile zugeordnet.
  • Konventionen statt Konfiguration übernehmen die Benennung.
  • CRUD: create, find/find_by, update, destroy.
  • Dirty Tracking zeigt nicht gespeicherte Änderungen.
  • Active Record erzeugt für Sie sicheres SQL.

Als Nächstes verwalten Sie das Datenbankschema mit Migrationen.

Häufig gestellte Fragen

Ist die Lektion „Active-Record-Grundlagen“ kostenlos?

Ja — der vollständige Text von „Active-Record-Grundlagen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Active-Record-Grundlagen“?

Grundlagen des ORM Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Active-Record-Grundlagen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Active-Record-Grundlagen
  2. Migrationen
  3. Assoziationen
  4. Validierungen und Abfragen
← Zurück zu Ruby Academy