Ruby on Rails - Finders

Voici les moyens de trouver des enregistrements avec et sans conditions -

Ce qui suit trouvera un auteur avec l'ID 50.

Author.find(50)

Vous trouverez ci-dessous les auteurs avec les ID 20, 30 et 40.

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

Vous trouverez ci-dessous tous les auteurs -

Author.find :all

Vous trouverez ci-dessous tous les auteurs avec le prénom alam .

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

Ce qui suit trouvera le premier enregistrement des auteurs avec le prénom alam .

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

Options pour les Finders

Vous pouvez utiliser l'option suivante avec find fonction.

  • :order => 'name DESC' Utilisez cette option pour trier le résultat par ordre croissant ou décroissant.

  • :offset => 20 Démarre la récupération des enregistrements à partir du décalage 20.

  • :limit => 20 Renvoie seulement 20 enregistrements.

  • :group => 'name' Cela équivaut au fragment SQL GROUP BY.

  • :joins => LEFT JOIN ...' JOINT GAUCHE supplémentaire (rarement utilisé).

  • :include => [:account, :friends] Il s'agit de la jointure externe gauche avec ces modèles.

  • :select => [:name, :address] Utilisez ceci au lieu de SELECT * FROM.

  • :readonly => true Utilisez cette option pour protéger les objets en écriture.

Finders dynamiques basés sur les attributs

Vous pouvez utiliser des fonctions plus dynamiques pour récupérer des valeurs.

S'il y a un champ user_name, vous pouvez ensuite utiliser ce qui suit pour rechercher des enregistrements par nom d'utilisateur.

Person.find_by_user_name(user_name)

S'il y a un champ last_name, vous pouvez ensuite utiliser ce qui suit pour rechercher des enregistrements par nom de famille.

Person.find_all_by_last_name(last_name)

S'il y a des champs user_name et password, vous pouvez ensuite utiliser ce qui suit pour rechercher un enregistrement pour un nom d'utilisateur et un mot de passe donnés.

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