Ruby · Intermediário · Inglês · Técnico
has many
Macro do ActiveRecord que declara uma associação um-para-muitos: um registro possui vários outros, ligados por chave estrangeira. Gera métodos como livros, build e create no objeto.
Onde usar
Aparece junto de belongs_to nos models, como um Autor com has_many :livros. Permite navegar relações sem escrever SQL e define, com dependent:, o que fazer ao apagar o pai.
Em código
class Autor < ApplicationRecord
has_many :livros, dependent: :destroy
end
class Livro < ApplicationRecord
belongs_to :autor
end
autor.livros.create(titulo: "Ruby")Exemplos
An author has many books.
Um autor tem vários livros.
Set dependent destroy so the books go with the author.
Configure dependent destroy para os livros irem junto com o autor.
Cuidado
Não esqueça o belongs_to no lado oposto nem a chave estrangeira no banco; e dependent: :destroy roda callbacks, ao contrário de :delete_all.
Sinônimos
associação um-para-muitos
Antônimos
belongs_to