Trilha Júnior Trilha

Associações ActiveRecord: polimórficas

Associações polimórficas permitem que uma única associação do ActiveRecord aponte para vários tipos de model, decididos por linha. O curso parte de um Comment que precisa se ligar a um Article ou a uma Photo, e mostra por que uma coluna anulável por tipo não se sustenta. Trata das colunas commentable_type e commentable_id, do lado inverso com has_many e as:, e de dependent: :destroy. Explica por que não há chave estrangeira no banco e o que um tipo desatualizado levanta. Por fim, mostra o Active Storage usando o mesmo mecanismo e consultas por tipo.

O que você vai aprender

  • ✓Por que uma coluna belongs_to anulável por tipo permite linhas inválidas
  • ✓As colunas commentable_type e commentable_id por trás de belongs_to com polymorphic: true
  • ✓O lado inverso com has_many e a opção as:
  • ✓Como dependent: :destroy faz a cascata por tipo e por que não há chave estrangeira no banco
  • ✓Como um tipo desatualizado ou inventado levanta NameError
  • ✓Como os anexos do Active Storage usam o mesmo mecanismo, e consultas por tipo
Prévia grátis · Aula 1 3 min de leitura

Uma associação, vários tipos possíveis

Associações ActiveRecord: through tratou de belongs_to, has_many, has_one e :through, e cada uma delas apontava para um outro tipo de model. Catalog::Lesson belongs_to :course sempre significa um Catalog::Course do outro lado. Esse tipo fixo está embutido em course_id: uma coluna inteira que só…

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...