2009-05-13 3 views
0

Es folgt die Assoziation zwischen zwei Modellen:Auswählen von nur einer Reihe von Modell Kind auf der Basis der übergeordneten Modell

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) 

Es zeigt die allerneuesten 5 Fotos von hochladen Modell.
Aber ich möchte 5 Bilder von Uploads anzeigen, order_by created_date DESC aber nur 1 Bild pro FotoGossip.
Es ist so etwas wie die Gruppierung der letzten FotoGossip mit einem Foto aus dem Uploads-Modell.

Antwort

0

Die folgenden AR-Abfrage es gelöst.

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

Die Magie liegt in der Option: group.

0

Ich glaube, Sie ActiveRecord::Base#calculate wie verwenden können in

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

gut, danke für die Antwort Fer !. Aber es hat nicht so funktioniert, wie ich es erwartet hatte, und ich habe meinen eigenen Weg gemacht, wie auf der Antwort, die ich gepostet habe. – Autodidact

Verwandte Themen