Je construis une interface de recherche qui cherche des commentaires. Lorsqu'un utilisateur clique sur un résultat de recherche (commentaire), je souhaite afficher les commentaires environnants.Comment obtenir des enregistrements basés sur un décalage autour d'un enregistrement particulier?
Mon modèle:
Group (id, title) - A Group has many comments
Comment (id, group_id, content)
Par exemple:
Lorsqu'un utilisateur clique sur un commentaire avec comment.id
égal à 26. Je voudrais tout d'abord trouver tous les commentaires de ce groupe:
comment = Comment.find(26)
comments = Comment.where(:group_id => comment.group_id)
J'ai maintenant tous les commentaires du groupe. Ce que je veux ensuite faire est de montrer comment.id
26, avec un maximum de 10 commentaires avant et 10 commentaires après.
Comment puis-je modifier les commentaires pour afficher ce décalage?
Comment faites-vous sûr d'obtenir que les commentaires dans la group_id correcte? – AnApprentice
J'étais curieux de savoir si c'était possible w une requête contre plusieurs? – AnApprentice
Vous pouvez probablement écrire une requête SQL complexe qui va faire tout ce qui précède en un seul coup, mais il va souffrir de la lisibilité. – gylaz