Interrogation des enregistrements via sa relation belongs_to dans Rails
J'ai une Activités modèle, et ils belong_to un Emplacement
Comment puis-je sélectionner toutes les activités dont l'emplacement.pays = Australie? (par exemple)
Puis-je le faire dans un champ?
source d'informationauteur Will
Vous devez vous connecter pour publier un commentaire.
Le type de requête que vous êtes en train de parler d'une jointure. Vous pouvez essayer de requêtes de ce genre dans la console comme:
Cela signifie que SQL va prendre toutes les activités et lieux associés avec ensuite, trouver les endroits où les pays=Australie, et ensuite de retour à des activités qui sont associées à ces endroits.
De faire cela dans un plus réutilisable champ d'application, définissez-la sur votre modèle avec une variable de pays:
Vous pouvez en apprendre plus à ce sujet dans le Les docs de l'API.
Avec les derniers rails de versions que vous pouvez faire:
Attention:
joins(:location)
parce que c'est un belongs_to relationwhere(…)
parce que c'est le nom de la tableLe second signifie que, si vous aviez le suivant:
la requête serait:
Oui, un champ peut être utilisé. Quelque chose comme cela devrait travailler sur les Activités modèle: