Article.find(id): buscando pela chave primária

Prévia grátis 1 min de leitura

A linha da primeira aula de ActiveRecord

article = Article.find(1)
article.title
# => "Hello Rails"

ActiveRecord: introdução ao model abriu com esta linha sem explicá-la. Article.find(1) busca a linha cujo id é 1 e devolve a instância correspondente, já construída, como as que ActiveRecord: criando registros produziu com .save.

Uma linha salva, encontrada pelo id

article = ScratchArticle.create!(title: "Hello Rails")
ScratchArticle.find(article.id).title
# => "Hello Rails"

Conferido numa tabela descartável: o id que o .create! atribui é o valor de que o .find precisa para recuperar a linha. É o mesmo id que você viu aparecer ao salvar no curso anterior.

Uma busca por id

O .find espera um id, não uma descrição do que procurar. Ele casa com a chave primária, a coluna id. Buscar por outra coisa, como título ou slug, começa na próxima aula.

Pontos-chave

  • Article.find(1) busca uma linha pela chave primária, id.
  • O id atribuído ao salvar é o valor que o .find usa para recuperar a linha.
  • O .find busca só por id; outros atributos vêm em seguida.
Aula 1 de 7 · grátis

Continue com a aula 2

find levanta uma exceção quando nada corresponde

O find gera ActiveRecord::RecordNotFound para um id inexistente, e em produção o Rails responde com 404.

Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.

Digite para buscar...