ActiveRecord è l'ORM di Rails: mappa una classe Ruby su una tabella del database e ti fa lavorare con oggetti invece che con stringhe SQL.

class Launch < ApplicationRecord
end

Launch.create(name: "Falcon 9", provider: "SpaceX")
Launch.where(provider: "SpaceX").order(:date)
Launch.find(1)

launch = Launch.first
launch.update(status: "success")

Ogni metodo genera SQL sotto il cofano, ma tu ragioni in Ruby. where, order, limit restituiscono relazioni concatenabili e "lazy": la query parte solo quando i dati servono davvero.

Il rischio? Dimenticarsi che c'è un database sotto e sparare mille query senza accorgersene. Ma quello è un discorso per un altro giorno.