180 votes

trouver vs find_by vs où

Je suis nouveau dans le domaine des rails. Ce que je vois, c’est qu’il y a beaucoup de façons de trouver un enregistrement:

  1. ``
  2. ``
  3. ``

Et il semble que tous finissent par générer exactement le même SQL. En outre, je crois qu’il en va de même pour la recherche de plusieurs enregistrements:

  1. ``
  2. ``
  3. ``

Y a-t-il une règle empirique ou une recommandation sur laquelle utiliser?

156voto

MikeAndr Points 97

renvoie ActiveRecord::Relation

Jetez maintenant un coup d’œil à find_by mise en œuvre :

Comme vous pouvez le voir find_by est identique à l’endroit où , mais il ne renvoie qu’un seul enregistrement. Cette méthode doit être utilisée pour obtenir 1 enregistrement et doit être utilisée pour obtenir tous les enregistrements avec certaines conditions.

37voto

Kasumi Points 543

Il y a une différence entre et en cela renverra une erreur si elle n’est pas trouvée, alors que retournera null.

Parfois, il est plus facile à lire si vous avez une méthode comme , par opposition à.

18voto

Agis Points 9838

Depuis Rails 4, vous pouvez faire:

qui est l’équivalent `` dans Rails 3.

Utilisez quand et `` ne sont pas suffisants.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X