我怎麼能顯示最近添加@post和@photos在一個列表?例如:的Rails:多種型號的記錄列表
post - LAlala (10.10.2011)
photos - [] [] [] [] (1.1.2011)
post - Bbbdsfbs (2.12.2010)
post - Lasdasdf2 (2.10.2009)
我怎麼能顯示最近添加@post和@photos在一個列表?例如:的Rails:多種型號的記錄列表
post - LAlala (10.10.2011)
photos - [] [] [] [] (1.1.2011)
post - Bbbdsfbs (2.12.2010)
post - Lasdasdf2 (2.10.2009)
@posts = Post.limit(20).order('created_at desc')
@photos = Photo.limit(20).order('created_at desc')
@recent_items = (@posts + @photos).sort_by(&:created_at)
<% @recent_items.each do |item| %>
<% if item.class == "Photo" %>
<%= image_tag item.url %>
<% else %>
<%= item.title %>
<% end %>
<% end %>
或者,使用group_by
做這樣的:
@recent_items = (@posts + @photos).group_by(&:created_at)
<% @recent_items.each do |date, items| %>
Date: <%= date %>
<% items.each do |item| %>
Show information here.
<% end %>
<% end >
我認爲邏輯移動到一個幫手,如果我是你的機碼。
最好就是做這個是數據庫。
我只想說:多態性+數據庫視圖。
創建包含您從兩個郵政和照片需要的列,包括列數據庫視圖「型」包含模型(你需要它的多態性)的名稱。將此視圖稱爲「list_items」。然後創建一個名爲「ListItem」的模型。然後,您可以像使用其他任何方式一樣使用此模型,對它進行分頁並隨時做出任何其他操作。
ListItem.order("created_at > ?", Date.yesterday).page(params[:page])
而且不要忘記配置polymorphic association
然而,這一切是很容易與listable寶石來完成。一探究竟!
太棒了!但我如何分頁呢? – everm1nd
這取決於你用於分頁的內容。發佈一個單獨的問題。 – bricker
是否曾經有一篇關於分頁的後續文章? –