2009-05-13 9 views
0

Suite est l'association entre les 2 modèles:Sélection qu'une seule ligne à partir du modèle de l'enfant basé sur le modèle parent

class FotoGossip < ActiveRecord::Base 
    has_many :uploads 
end 

class Upload < ActiveRecord::Base 
    belongs_to :foto_gossip 
end 

@latest_uploads = Upload.all(:include => :foto_gossip, :order => "created_at DESC", :limit => 5) 

Il affiche les 5 dernières photos de modèle Télécharger.
Mais, je veux afficher 5 images de Uploads, order_by created_date DESC mais seulement 1 image par FotoGossip.
C'est un peu comme de regrouper le FotoGossip récent avec sa photo du modèle Uploads.

Répondre

0

Cette requête suivante AR résolu.

@latest_uploads = Upload.all(:include => :foto_gossip, :order => "created_at DESC", :limit => 5, :group => :foto_gossip_id) 

La magie réside dans l'option: group.

0

Je pense que vous pouvez utiliser ActiveRecord::Base#calculate comme dans

@latest = Update.maximun(:creted_at,:distinct=>:foto_gossip_id) 
+0

bien, merci pour la réponse Fer !. Mais cela n'a pas fonctionné comme je m'y attendais et j'ai fait mon propre chemin comme sur la réponse que j'ai posté. – Autodidact

Questions connexes