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.