Article.find(id): buscando pela chave primária
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
idatribuído ao salvar é o valor que o.findusa para recuperar a linha. - O
.findbusca só porid; outros atributos vêm em seguida.
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.