Ruby on Rails - Finders

Di seguito sono riportati i modi per trovare i record con e senza condizioni:

Di seguito troverà un autore con ID 50.

Author.find(50)

Di seguito troveranno autori con ID 20, 30 e 40.

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

Di seguito troverai tutti gli autori -

Author.find :all

Di seguito troverai tutti gli autori con il nome alam .

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

Di seguito troverai il primo record degli autori con il nome alam .

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

Opzioni per i Finder

Puoi usare la seguente opzione insieme a find funzione.

  • :order => 'name DESC' Usa questa opzione per ordinare il risultato in ordine crescente o decrescente.

  • :offset => 20 Avvia il recupero dei record dall'offset 20.

  • :limit => 20 Restituisce solo 20 record.

  • :group => 'name' Questo è equivalente a sql fragment GROUP BY.

  • :joins => LEFT JOIN ...' JOIN SINISTRO aggiuntivo (usato raramente).

  • :include => [:account, :friends] Questo è LEFT OUTER JOIN con questi modelli.

  • :select => [:name, :address] Usa questo invece di SELECT * FROM.

  • :readonly => true Usalo per rendere gli oggetti protetti da scrittura.

Finder dinamici basati sugli attributi

È possibile utilizzare più funzioni dinamiche per recuperare i valori.

Se c'è un campo user_name, quindi è possibile utilizzare quanto segue per trovare i record in base al nome utente.

Person.find_by_user_name(user_name)

Se c'è un campo last_name, quindi puoi utilizzare quanto segue per trovare i record in base al cognome.

Person.find_all_by_last_name(last_name)

Se ci sono campi user_name e password, quindi è possibile utilizzare quanto segue per trovare un record per un determinato nome utente e password.

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