ExpertiDict

Ruby · Intermediário · Inglês · Técnico

has many

/hæz ˈmɛni/método

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

Veja também

Todos os termos de Ruby