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 retornadosQuantidade de visualizações: 14934 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
class CadastroController < ApplicationController
def cadastrar
# vamos obter o livro com o id 2
begin
# vamos obter o primeiro livro em uma query
# SELECT * FROM livros
livro = Livro.find(:first)
# encontramos algum livro?
if not livro.nil?
render :text => "Livro: " + livro.titulo
else
render :text => "Livro não encontrado"
end
end
end
end
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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





