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)