Você está aqui: Ruby On Rails ::: Dicas & Truques ::: Active Record

Usando os métodos find(), first() e last() para retornar o primeiro ou último registro em um conjunto de registros retornados

Quantidade de visualizações: 11457 vezes
Em algumas situações nós estamos interessados apenas no primeiro ou último registro de um conjunto de registros retornados. Para esta finalidade, a classe ActiveRecord::Base nos fornece versões modificadas do método find(). São elas: find(:first) e find(:last). Estas duas versões aceitam ainda algumas opções de parâmetros. Na ausência de tais parâmetros, uma query SELECT * FROM é assumida.

Veja um trecho de código no qual obtemos o primeiro registro de um conjunto contendo todos os registros da tabela. Note que aqui não temos controle sobre a ordem na qual os registros são retornados:

Super Pack 10.000 Dicas e Truques de Programação e 500 Exercícios Resolvidos de Programação Este trecho de código ou resolução de exercício está disponível somente para apoiadores

Mas se você não puder nos apoiar agora, role a página e encontrará muito conteúdo gratuíto.

O mesmo resultado poderia ser obtido com:

livro = Livro.find(:first, :order => "id")

Aqui nós apenas adicionamos a opção :order para informar que queremos que os registros retornados estejam ordenados por id e em ordem ascendente. Veja esta nova versão:

condicao = "%Java%"
livro = Livro.find(:first, :conditions => ["titulo LIKE :condicao",
{:condicao => condicao}], :order => "id")

Esta nova versão do método find() já é um pouco mais elaborada. Aqui apenas os livros que contenham a palavra "Java" em seus títulos serão retornados. O mesmo resultado pode ser conseguido usando o método first(). Veja:

condicao = "%Delphi%"
livro = Livro.first(:conditions => ["titulo LIKE :condicao",
{:condicao => condicao}], :order => "id")

Os métodos find(:last) e last() retornam resultados semelhantes, exceto que agora o registro retornado é o último do conjunto de registros obtidos.

Veja mais Dicas e truques de Ruby On Rails

Dicas e truques de outras linguagens

Quem Somos

Osmar J. Silva
Programador Freelancer
WhatsApp +55 (062) 98553-6711

Goiânia-GO
Programador Freelancer - Full Stack Developer, Professional Java Developer, PHP, C/C++, Python Programmer, wxWidgets Professional C++ Programmer, Freelance Programmer. Formado em Ciência da Computação pela UNIP (Universidade Paulista Campus Goiânia) e cursando Engenharia Elétrica pela PUC-Goiás. Possuo conhecimentos avançados de Java, Python, JavaScript, C, C++, PHP, C#, VB.NET, Delphi, Android, Perl, e várias tecnologias que envolvem o desenvolvimento web, desktop, front-end e back-end. Atuo há mais de 15 anos como programador freelancer, atendendo clientes no Brasil, Portugal, Argentina e vários outros paises.
Entre em contato comigo para, juntos, vermos em que posso contribuir para resolver ou agilizar o desenvolvimento de seus códigos.
José de Angelis
Programador Freelancer
WhatsApp +55 (062) 98243-1195

Goiânia-GO
Programador Freelancer - Formado em Sistemas de Informação pela Faculdade Delta, Pós graduado em Engenharia de Software (PUC MINAS), Pós graduado Marketing Digital (IGTI) com ênfase em Growth Hacking. Mais de 15 anos de experiência em programação Web. Marketing Digital focado em desempenho, desenvolvimento de estratégia competitiva, analise de concorrência, SEO, webvitals, e Adwords, Métricas de retorno. Especialista Google Certificado desde 2011 Possui domínio nas linguagens PHP, C#, JavaScript, MySQL e frameworks Laravel, jQuery, flutter. Atualmente aluno de mestrado em Ciência da Computação (UFG)
Não basta ter um site. É necessário ter um site que é localizado e converte usuários em clientes. Se sua página não faz isso, Fale comigo e vamos fazer uma analise e conseguir resultados mais satisfatórios..

Linguagens Mais Populares

1º lugar: Java
2º lugar: C#
3º lugar: Delphi
4º lugar: PHP
5º lugar: Python
6º lugar: JavaScript
7º lugar: C
8º lugar: C++
9º lugar: VB.NET
10º lugar: JSP (Java Server Pages)



© 2021 Arquivo de Códigos - Todos os direitos reservados | Versión en Español | Versão em Português