Ruby on Rails - Finders

A seguir estão as maneiras de descobrir registros com e sem condições -

A seguir encontrará um autor com ID 50.

Author.find(50)

A seguir encontrarão autores com ID 20, 30 e 40.

Author.find([20,30, 40])

A seguir encontrará todos os autores -

Author.find :all

A seguir encontrará todos os autores com nome próprio alam .

Author.find :all
            :condition => ["first_name =?", "alam" ]

A seguir encontrará o primeiro registro dos autores com o primeiro nome alam .

Author.find :first
            :condition => ["first_name =?", "alam" ]

Opções para localizadores

Você pode usar a seguinte opção junto com find função.

  • :order => 'name DESC' Use esta opção para classificar o resultado em ordem crescente ou decrescente.

  • :offset => 20 Começa a buscar registros do deslocamento 20.

  • :limit => 20 Retorna apenas 20 registros.

  • :group => 'name' Isso é equivalente ao fragmento sql GROUP BY.

  • :joins => LEFT JOIN ...' LEFT JOIN adicional (raramente usado).

  • :include => [:account, :friends] Este é o LEFT OUTER JOIN com esses modelos.

  • :select => [:name, :address] Use isto em vez de SELECT * FROM.

  • :readonly => true Use isto para tornar os objetos protegidos contra gravação.

Localizadores baseados em atributos dinâmicos

Você pode usar funções mais dinâmicas para buscar valores.

Se houver um campo user_name, então você pode usar o seguinte para localizar registros por nome de usuário.

Person.find_by_user_name(user_name)

Se houver um campo last_name, então você pode usar o seguinte para localizar registros pelo sobrenome.

Person.find_all_by_last_name(last_name)

Se houver campos user_name e password, então você pode usar o seguinte para localizar um registro para um determinado nome de usuário e senha.

Person.find_by_user_name_and_password(user_name, password)
rails-reference-guide.htm