Le associazioni dicono a Rails come i modelli sono collegati, e in cambio ti danno metodi per muoverti tra i dati senza scrivere join a mano.
class Provider < ApplicationRecord
has_many :launches, dependent: :destroy
end
class Launch < ApplicationRecord
belongs_to :provider
end
spacex = Provider.find_by(name: "SpaceX")
spacex.launches.count # tutti i lanci del provider
launch.provider.name # dal lancio al provider
spacex.launches.create(name: "Starship")
belongs_to vuole la colonna provider_id sulla tabella dei lanci (la crei in migrazione con t.references :provider). Da lì Rails costruisce le query giuste.
Aggiungi dependent: :destroy e cancellando un provider elimini anche i suoi lanci: comodo, ma usalo con la testa.