ActiveRecord: introdução ao model
O ActiveRecord é o ORM do Rails, que liga uma classe a uma tabela e uma instância a uma linha. O curso olha uma classe de model por dentro. Ele trata da cadeia de herança de ApplicationRecord até ActiveRecord::Base, da convenção de nomes que liga a classe à tabela e de como os atributos saem do schema do banco. Também apresenta as validações como regras conferidas antes de salvar. No fim, o model é inspecionado no console Rails com comandos só de leitura, como superclass, table_name e column_names.
O que você vai aprender
- ✓O que é um ORM e como o ActiveRecord liga tabelas e linhas a objetos Ruby
- ✓Como os models herdam de ApplicationRecord e ActiveRecord::Base
- ✓Como nomes de classe viram nomes de tabela no plural em snake_case, e como sobrescrever isso
- ✓Por que os atributos vêm do schema, com os padrões de coluna
- ✓Como o validates declara regras conferidas antes de salvar
- ✓Como inspecionar um model no console com superclass, table_name e column_names
O que é o ActiveRecord?
Nada disso parece SQL: nenhum SELECT, nenhum WHERE, nenhum nome de coluna entre aspas. article é um objeto Ruby, e .title e .published? são chamadas de método, como todo objeto desde Visão geral do Rails MVC. Por baixo, uma linha de uma tabela articles foi lida e virou este objeto, cada coluna…
Ler a aula completa grátis →Currículo
7 aulasO que é o ActiveRecord?
O ActiveRecord é o ORM do Rails, que transforma linhas de tabela em objetos Ruby, uma classe por tabela.
ApplicationRecord: a classe-mãe
Todo model herda de ApplicationRecord, uma base abstrata comum que por sua vez herda de ActiveRecord::Base.
Convenção mapeia uma classe a uma tabela
Nomes de classe viram tabelas no plural em snake_case, prefixos de módulo contam e self.table_name sobrescreve a convenção.
Atributos vêm do schema
O ActiveRecord lê o schema e gera métodos de atributo para cada coluna, refletindo também os padrões do banco.
Validações: uma regra antes de salvar
A palavra-chave validates declara regras como presença, tamanho, unicidade e formato, conferidas na hora de salvar.
Inspecionando um model pelo console
Comandos de console só de leitura, como superclass, table_name e column_names, conferem cada fato sobre a classe de model.
Juntando tudo: um model, totalmente explicado
Cada linha da classe Article remete a herança, nome de tabela, atributos do schema e validações.