2011-06-07 41 views
1

我有2種型號,我很感興趣,合併,然後由created_at列進行排序。其中一個模型是照片,另一個是狀態。目前,我有兩個選項卡,照片中,我sepeartely由他們創建時間顯示每個模型數據的狀態。不過,我想再拍標籤叫做照片和狀態,並一起顯示出來。我的問題是,我怎麼能在他們一起創建時顯示他們兩個。例如,我希望它有這樣的訂單加入2模型的數據一起,並通過公共列排序呢?

Hell World (status posted 4 hours ago) 
<img src="blah/blah" /> (posted 6 hours ago) 
Hello (status posted 8 hours ago) 

有什麼建議嗎?在此先感謝

回答

1

有可能在SQL這樣做一些華而不實的方式,但如果你只顯示幾個記錄,在Ruby中做的很精緻,和可讀性。喜歡的東西:

@photos = Photo.recent(5) 
@images = Image.recent(5) 
@both = (@photos + @images).sort_by(&:created_at).reverse 

如果你的目標是顯示一個經典的活性飼料,我建議timeline_fu插件:

https://github.com/jamesgolick/timeline_fu

很容易設置,非常漂亮。

+0

我喜歡你的答案比我,upvoted更好;) – 2011-06-07 02:58:01

+0

感謝那個RLY好!你的男人! – Jake 2011-06-07 03:23:32

0

你可以簡單地都添加到一個數組,然後進行排序:

@merged = (@statuses.all + @photos.all).sort_by! {|o| o.created_at } 
+0

感謝多數民衆贊成真棒! – Jake 2011-06-07 03:22:27

相關問題