Je suis relativement nouveau sur les rails et aussi sql. J'utilise postgres sur la production.Comment obtenir la somme d'un groupe de documents?
j'ai un modèle Like
et par le polymorphisme, il a des attributs likeable_type
et likeable_id
, c'est comment les éléments dans mon modèle Photo
sont « aimé » par l'utilisateur. Je peux accéder à une photo à travers un objet similaire aussi like.likeable
lorsque l'objet attitré a Photo
comme likeable_type
et l'identifiant de la photo comme likeable_id
.
Ma Question: Je veux être en mesure d'obtenir une liste de Photos qui ont été les plus appréciées au cours des dernières 24 heures, avec le plus aimé en haut et le moins aimé en bas de la commande. Comment puis-je faire cela?
Jusqu'à présent, je sais que mon code devrait ressembler à quelque chose comme
likes = Like.find(:all, :conditions => { :created_at => 1.days.ago.utc...Time.now.utc, :likeable_type => "Photo" })
likes = likes.group(--- something here --- , SUM(--- something here ---))
mais je ne suis pas tout à fait en mesure de comprendre ce que la syntaxe correcte shoule être.
toute aide sera très appréciée!
En d'autres termes, ce que je cherche à faire est de compter combien de chaque likeable_id a été créé dans la table similaire, dans les dernières 24 heures. Quelqu'un peut-il aider? – alik
Un indice sera également utile. Vraiment besoin de comprendre celui-ci, quelqu'un peut-il aider? – alik