Nous avons des images sur notre site que les utilisateurs peuvent sélectionner des images de profil pour leurs comptes. Voici les lignes correspondantes dans les modèles:
>> User.first.profile_image => nil >> User.second.profile_image => #<ProfileImage id: 2, image_id: 9, user_id: 6, created_at: "2019-10-26 17:52:37", updated_at: "2019-10-26 17:52:37">
3 Réponses :
Je pense que cela devrait fonctionner:
User.joins(:profile_image)
has_one n'a pas d'identifiant d'image stocké sur la table des utilisateurs. Par conséquent, votre requête d'origine est irrationnelle. P>
Donc, en fonction de votre description, je vais suggérer de compter les images (HAS_One signifie que chaque image appartient à un utilisateur) p>
semble trop simple pour être vrai, n'est-ce pas? p> profilImage.count code> p>
Merci, coureur! Mais je dois utiliser les dossiers retournés dans une vue, alors obtenez-en simplement un nombre d'entre eux n'aide pas.
La fonctionnalité à travers: si je comprends bien, est destinée à beaucoup de nombreuses relations. Iow, c'est une table de jointure avec Attributs ajoutés. C'est un modèle avec un comportement de la table de jointure. Donc, vous pourriez changer le has_one à has_many (même s'il n'y en ait qu'un) ou essayez de créer cette relation de manière différente. Je ne suis pas un expert et j'aimerais entendre les autres aussi.